Выделить память для каждого потока
Подскажите пожалуйста, как выделить для каждого отдельного потока свою динамическую память? Листаю документацию, но не могу сложить пазл из всего, что там есть, в рабочий код. M_new для каждого потока должна быть отдельной и независимой от других матрицей. Если закомментировать #pragma omp, то все работает, как надо
int** M_new = nullptr;
int j, i1, j1, k;
#pragma omp parallel
{
#pragma omp parallel for private(j, i1, j1, k, M_new) shared(M, b, b_new)
for (j = cnt_blocks - 1; j > dif - 1; j--)
{
M_new = new int* [m];
for (int k = 0; k < m; k++) M_new[k] = new int[m];
for (i1 = 0; i1 < m; i1++)
{
for (j1 = 0; j1 < m; j1++)
{
b_new[j * m + i1] -= M[j][i1][j1] * b[(j - dif) * m + j1];
M_new[i1][j1] = 0;
for (k = 0; k < m; k++)
{
M_new[i1][j1] -= M[j][i1][k] * M[j - dif][k][j1];
}
}
}
for (i1 = 0; i1 < m; i1++)
{
for (j1 = 0; j1 < m; j1++)
{
M[j][i1][j1] = M_new[i1][j1];
}
delete[] M_new[i1];
}
delete[] M_new;
}
}