递归时 运行时错误:Stack overflow

 很有可能是递归太深了,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进程的虚拟内存增大。
提交是把保留出来的内存空间地址和物理内存做映射,提交以后才能正真使用这块地址。这是后物理内存占用也增大了。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值