以下代码导致堆栈溢出但我不明白为什么......
int _tmain(int argc, _TCHAR* argv[])
{
cout << "start";
char bmp[1024][768][3];
for (int p = 0; p < 9000; ++p)
{
for(int i = 0; i < 1024; ++i)
{
for(int j = 0; j < 768; ++j)
{
bmp[i][j][0] = 20;
}
}
}
cout << "Stop";
return 0;
}
由于
答案 0 :(得分:16)
我想说这可能是因为1024 * 768 * 3是2,359,296
,这对于本地堆栈来说可能太大了。
您应该在堆上分配它。
答案 1 :(得分:2)
分配int数组崩溃,因为它比默认的Windows堆栈大。尝试改变它的大小,你会发现它不再崩溃。