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

来源:互联网 发布:手机淘宝如何修改地址 编辑:程序博客网 时间:2024/05/14 15:59

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

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

打开项目属性页对话框

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

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

修改下列任一属性:

堆栈提交大小(Stack Reserve Size)

堆栈保留大小(Stack Commit Size)

Reserve:栈的总大小

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

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

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

具体如下图:



原创粉丝点击