Я хочу передать 2D-массив в мою функцию потока, которая должна иметь параметры (void * args). Когда я хочу итерации через массив в моей функции, я продолжаю приводить к следующей ошибке:Передача 2D-массива функции потока
подстрочное значение не является массивом, указателем или вектором sumArrays + = args [i] [j];
Я не уверен, как обойти это. Значения, переданные функции потока, также являются целыми числами.
Любая помощь была бы замечательной!
Благодаря
Показать минимальный пример, который воспроизводит вашу проблему. – 2501
При передаче в качестве параметра функции массив распадается на указатель на его первый элемент. Поэтому, если вы передаете массив как параметр 'args' потока, ваша функция потока должна назначить его переменной указателя, которая является указателем на тип элемента. Вместо того, чтобы напрямую передавать массив, вы можете использовать элемент типа 'struct', чтобы указать на него, и передать указатель на' struct' как 'args' вашего потока. Затем функция потока может передать ее соответствующему типу типа 'struct'. –
Если вы используете 'pthreads', это отличный учебник. Даже если это не так, концепции одинаковы: https://computing.llnl.gov/tutorials/pthreads/ – yano