Форум программистов, компьютерный форум, киберфорум
Наши страницы

Передача в поток многомерных массивов по указателю - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при обращении к классу http://www.cyberforum.ru/cpp-beginners/thread1816651.html
Есть класс для хранения элементов, к которым должен быть доступ из других классов - решил объявить как глобальный: Items.h: class Items { public: Item potion;//...etc Items() : ...
C++ передача функции указателей Сап, помогите пожалуйста разобраться с передачей указателей функции. Нужно для матрицы A (4×5) определить количество строк, сумма элементов которых положительна, нужно сделать через функции void. И... http://www.cyberforum.ru/cpp-beginners/thread1816644.html
Составить алгоритм подсчитывающий количество недель - C++ C++
количеству с n дней соответствует линейная таблица элементов, в рабочий день обозначено - 1, а нерабочий - 0. Составить алгоритм который считает: а) количество недель в месяце Примечание: Неделей...
Игра в закрашивание клеток C++
Двое ребят на клетчатом листе бумаги N × M клеток играют в такую игру: они по очереди закрашивают клетки (изначально все клетки не закрашены). За ход разрешается закрасить 1, 2, 3 или 10 любых ещё не...
C++ Класс С++ ошибка http://www.cyberforum.ru/cpp-beginners/thread1816618.html
Помогите устранить ошибку Может проблемы в переменных ( такие же переменные я использовал в другом классе) Еще думаю что проблема в пространстве имен Надеюсь поможете и объясните
C++ Вычислить значение выражения совершенно не знакома с C++ но дали задание написать код, помогите пожалуйста.... подробнее

Показать сообщение отдельно
Kapex
15 / 15 / 4
Регистрация: 11.11.2014
Сообщений: 121

Передача в поток многомерных массивов по указателю - C++

30.09.2016, 16:39. Просмотров 286. Ответов 5
Метки (Все метки)

Доброго всем времени суток.

У меня возникло непонимание того, как можно передать двумерный (многомерный) массив в поток. Пока это выглядит вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void worker (void* array2d, int size1, int size2){
       int ** arrayToWork = reinterpret_cast<int**> (array2d);
       
       for (int i = 0; i < size1; ++i)
            for (int j = 0; j < size2; ++j)
                  read_and_process(array2d[i][j]);
 
      /* do usefull stuff */
}
int main(){
     int  arr2d[size1][size2];
           /* fill in the arr2d*/
 
     vector<thread> poolThreads;
     for (int iThread = 0; iThread < 4; iThread++)
          pollThreads.push_back(thread(worker,  reinterpret_cast<void*> (arr2d), size1, size2));
     for (int iThread = 0; iThread < 4; iThread++)
          pollThreads[iThread].join();
        
   
  return 0;
}
Есть ли какой-нибудь более правильный способ передачи двумерных (многомерных) массивов в поток без использования приведений?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru