case里面定义数组为何运行时出错?
NT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
HWND hwnd;
switch (message)
{
case WM_INITDIALOG:
InitImageShow(hInst, hDlg, NULL);
return (INT_PTR)TRUE;
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hDlg, LOWORD(wParam));
EndImageShow();
break;
case IDC_ARRAY: // 这里面的数组定义出错。移到函数外面就能正常运行
{
float Array[1310400];
}
break;
}
}
return (INT_PTR)FALSE;
}
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
hInst = hInstance;
return (int) DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), NULL, About, NULL);
}
把数组的定义放到case里,并加上大括号,编译通过了,但是运行时出错,会跳转到一个chkst.asm的页面,提示Stack overflow。 但是如果把数组的定义放到函数的外面做全局变量就能正确运行。
[解决办法]
我没特别好的学习方法,只是认为做项目是提高水平最好的方法,当然平时多看书,提高下理论水平.