关闭

overflow与VC stack size参数/stack:

标签: exception测试
3843人阅读 评论(0) 收藏 举报
分类:


用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上动态申请内存。

2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2922989次
    • 积分:34360
    • 等级:
    • 排名:第147名
    • 原创:241篇
    • 转载:515篇
    • 译文:22篇
    • 评论:113条
    最新评论