Я пытаюсь передать несколько массивов потокам, создаваемые с использованием зОго :: нити следующим образом:Попутных массивов нитка
threadPool.push_back(std::thread(factor, Ap, Ai, Ax, b, Rs, Q, P, Pinv, n, 0, n, scale, nz));
и фактор функции определяются следующим образом:
void factor(int Ap[], int Ai[], double Ax[], double b[], double *Rs, int *Q, int *P, int *Pinv, int n, int k1, int k2, int scale, int nz);
Тема создана успешно, и я вижу ее в окне потоков визуальной студии (из отладчика). Однако данные массивов в потоке не похожи на данные, отправленные в поток. Кто-нибудь знает, что может быть причиной?
Похоже, вы передали указатель (который по существу является параметром массива), который указал на массив с функциями, а затем вышел из функции, поэтому массив вышел из области действия и был уничтожен. – Sneftel
Да, параметры (Ap, Ai, Ax и b) первоначально определяются как указатели, а затем передаются функциональному коэффициенту как массивы. Не могли бы вы объяснить дальнейший ваш комментарий. – Anas
Похожие программы: http://stackoverflow.com/questions/4264304/how-to-return-an-array-from-a-method – Sneftel