您的位置:首页 > 其它

递归时 运行时错误:Stack overflow

2009-11-28 15:29 134 查看
 很有可能是递归太深了,Stack overflow。

msdn里关于link的/stack帮助里明确写到"The default stack size is 1 MB
"。

项目- 属性- 配置属性- 链接器- 系统1.堆保留大小2.堆提交大小3.堆栈保留大小4.堆栈提交大小 可以设置得大一点。

 

 

/STACK参数  格式:/STACK:reserve[,commit]

第一个reserve参数的数值是指保留的栈大小,第二个commit参数值指定提交的大小。

比如,用/stack,0x100000 指定保留1MB的栈大小,这是在内存空间里保留出的堆栈大小,并不影响物理内存大小,因为还没提交。

/stack,0x100000,0x100000 则既保留的同时也提交这块内存,现在的物理内存已经被映射到这个内存空间,可以看见进程里test.exe的内存大小已经从700多K长到1.7MB了

提交和保留的

保留只是在内存空间地址上分配出指定的大小,准备使用,但还不能使用。可以通过 Process Explorer 查看test.exe进程的虚拟内存增大。

提交是把保留出来的内存空间地址和物理内存做映射,提交以后才能正真使用这块地址。这是后物理内存占用也增大了。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: