入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

程序中定义了大数组或需要很大栈内存时,出现stack overflow 错误的解决方法(vs2008)

创建时间:2013-04-24 投稿人: 浏览次数:115

原因是vs的默认栈空间的小是1M,如果程序需要的空间超过这个大小就出现Stack Overflow

处理的方法是修改项目属性,调整栈的大小

打开项目属性页对话框

单击“链接器”文件夹(Linker)。

单击“系统”属性页(System)。

修改下列任一属性:

堆栈提交大小(Stack Reserve Size)

堆栈保留大小(Stack Commit Size)

Reserve:栈的总大小

Commit:程序开始的时候系统提供的实际内存

reserve默认值为1MB,最小值为4Byte;commit是保留在虚拟内存的页文件里面,它设置的较

大会使栈开辟较大的值。注意这里设置的Reserve的值一定要大于Commit的值,我想不用我说大家也知道为什么吧。

具体如下图:



声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。