for ループを使用して 3 つのスレッドを作成しようとしています。以下は私のコードスニペットです:
DWORD WINAPI ThreadProc0(LPVOID param)
{
return 0;
}
DWORD WINAPI ThreadProc1(LPVOID param)
{
return 0;
}
DWORD WINAPI ThreadProc2(LPVOID param)
{
return 0;
}
int WINAPI WinMain( HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd )
{
DWORD threadId = 0;
int max_number=1;
//Start the threads
typedef DWORD (WINAPI * THREADPROCFN)(LPVOID lpParameter);
THREADPROCFN function[3] = {ThreadProc0,ThreadProc1,ThreadProc2} ;
for (int i = 0; i < max_number; i++)
{
CreateThread( NULL,
0,
(LPTHREAD_START_ROUTINE)&function[i],
(LPVOID) i,
0,
NULL
);
}
}
コードは正常にコンパイルされますが、実行すると、solution.exe が動作を停止したというエラーが表示されます。コードをデバッグすると、次のエラーが発生します。
Solution.exe の 0x0034fd00 で未処理の例外: 0xC0000005: アクセス違反。
助けを待っています。