overflow与VC stack size参数/stack:


用VC6编译的一个测试程序,一行代码是分配一个静态局部变量
const int N = 20000000;
char testarr[N] = {0};

但程序运行出错,直接运行提示unknown software exception(0xc00000fd) -- 其实是stack
overflow异常;调试提示Stack Overflow,出错位置定位在chkstk.asm内。
原因是局部变量b太大,超过了缺省1M的stack size。
解决办法有两个:
1)在link option中增加/stack:参数以扩大stack size,eg. /stack:0xa00000
2)改用new从heap上动态申请内存。

你可能感兴趣的:(overflow与VC stack size参数/stack:)