gpt4 book ai didi

c++ - WaitForMultipleObjects 在 64 位 Windows 上崩溃

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:15 24 4
gpt4 key购买 nike

考虑下面的代码:

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 不是一个数组,只是一个指针,它肯定会崩溃。它在 32 位平台上的工作方式很奇怪。

由于 hThreadArray 是 malloced,可能不满足 64 位对齐要求。尝试:

HANDLE hThreadArray[100] = {0};

关于c++ - WaitForMultipleObjects 在 64 位 Windows 上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10172797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com