test dword ptr [eax],eax ; probe page. visual studio

时间:2023-02-12 14:33:24

当在函数中申请占用空间很大的数组、结构体时,会产生该问题。

由于局部变量的申请空间存放于栈中,windows里默认栈内存是1M

所以当申请空间大于1M时就会出现溢出错误

通过debug就会进入以下文件chkask.asm

chkstk.asm - C stack checking routine

解决方法:

扩大栈空间的大小

VS设置项目属性:

项目->属性->链接器->系统->堆栈保留大小

注:这里填的是字节数
如果你想把他扩大为2M的话,
1024*1024*2 = 2097152