2012-03-20
Stack overflow与VC stack size参数/stack:
用VC6编译的一个测试程序,一行代码是分配一个静态局部变量
const int N = 20000000;
bitset b;
但程序运行出错,直接运行提示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上动态申请内存。
网友评论