考慮下面的代碼:WaitForMultipleObjects的崩潰
for (int i = 0; i < thread_number; i ++)
hThreadArray[i] = CreateThread(
0,
0,
single_thread_function_name,
(LPVOID)i,
0,
&dwThreadIdArray[i]);
WaitForMultipleObjects(thread_number, hThreadArray, TRUE, INFINITE);
它正常工作在32位平臺上,但在64位崩潰。
崩潰發生在WaitForMultipleObjects函數中。
有人知道我在做什麼錯嗎?
編輯: hThreadArray被聲明爲:
HANDLE* hThreadArray;
hThreadArray = (HANDLE*) malloc (thread_number * sizeof(HANDLE));
的single_thread_function_name爲:
DWORD WINAPI single_thread_function_name(LPVOID lpParam){
.....
return 0;
}
你可以發佈'hThreadArray'聲明和'single_thread_function_name()'代碼嗎? – hmjd 2012-04-16 11:03:49
當然,我編輯過。 – Aslan986 2012-04-16 11:08:34
您是否在hThreadArray中存儲了任何內容,或者是否將其保留爲未初始化? – bmargulies 2012-04-16 11:09:38