Вот я создаю потоки: Код (Text): for (int i = 0; i < 6; i++) { for (int j = 0; j < 6; j++) { if (matrix[i*6+j] == 1) { ind.iPos = i; ind.jPos = j; ind.id = iNum; ind.pid = 0; memcpy(ind.mtrx, matrix, 36 * sizeof(int)); iNum++; EnterCriticalSection(&cs); iCountThread++; LeaveCriticalSection(&cs); // создаем поток _beginthread(FindThread, 0, (void *) &ind); } } } А вот и сам поток: Код (Text): void FindThread(void *in) { int *matrix, iPos, jPos, isPos, ijPos, iNum; iNum = ((INDATA*)in)->id + 1; iPos = ((INDATA*)in)->iPos; jPos = ((INDATA*)in)->jPos; isPos = iPos; ijPos = jPos; matrix = (int*)malloc(sizeof(int) * 36); memcpy(matrix, ((INDATA*)in)->mtrx, sizeof(int) * 36); printf("Thread started №%d\n", iNum); Почему у меня на экране создаются потоки с одним и тем же номером, это получается что передается один и тотже указатель на массив. А как сделать чтобы у каждого потока входные данные были свои? .. Thread started № 11 Thread started № 11 Thread started № 11 Thread started № 11 Thread started № 11 ...
нету многих деталей, но осмелюсь спросить ключевой момент - где описана переменная ind? небось на стеке то? а ето чего?