用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上动态申请内存。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9844649/viewspace-580161/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9844649/viewspace-580161/