0
点赞
收藏
分享

微信扫一扫

【C++】VS允许代码时main()初始位置出现***处未经处理的异常:Stack overflow的解决办法

Visual Studio解决办法:

报错原因:堆栈溢出,可能是定义的某个变量太大而没有修改栈保留大小所至。本人的问题是用ege画图的时候定义的地图面积太大导致。

解决方法:
项目→属性→链接器→系统→堆栈保留大小→设置成一个比较大的数并应用。即可完美解决,如果还没解决可能是设置的不够大。
在这里插入图片描述
其实真正应该修改的是你的代码,问题就出现在为什么会有栈溢出问题,很简单,显然是数组或者开辟的指针空间太大!
所以,解决办法就是将大数组定义在main()外部当作全局变量,全局变量放在数据区,空间足够使用。或者写在main()中前面加上static,使其变成静态变量,也就相当于全局变量。即可完美解决。
int *a = new int[1000000000];
改为static int *a = new int[1000000000];

超过1M的变量放在全局或者改为静态变量。

CodeBlocks解决办法

报错原因:相同的问题在CodeBlocks中不会有错误说明,只是上来就崩了,说明问题发生在main()的起始。CB没有报错提示真的是不太方便。。。

解决办法:

CodeBlocks没法像VS那样简单的修改堆栈保留空间,解决办法同上述红字。

举报

相关推荐

0 条评论