VC++ 6.0 中修改默认栈空间大小的方法

    之前用VC++ 6.0编写程序进行较大规模的数组处理时,经常会遇到栈空间溢出(stack overflow)的问题,有时会弹出WINDOWS的警告,某内存不能read。如果新手想不到错误的原因是因为栈溢出的话,调试起来会非常头痛。

    我最近在对文本文件中的100多万行的浮点数进行按大小排序,首先想到的必然是用快速排序算法,快排利用到了递归的方法,递归方法会用到栈这个数据结构。VC++6.0中默认的栈空间大小是1M,我在运行程序时,把结果输出到一个文本文件中,但异常的是,程序并没有向文件中写任何东西。回头检查时,发现程序在递归的过程中出现异常。

    首先想到的出错原因是数据量太大,故多只取前三百行进行排序,结果正常输出。然后逐渐增加行数,当增加到70000行时,程序便不能正常输出了。这是典型的栈空间不够用的例子,现将栈空间修改的方法说明。在”工程“菜单中,选择”设置“,然后选择”连接“选项卡,在”分类“下拉菜单中,选择”输出“,然后在”堆栈分配“框中输入一个较大的数目,此框中的数目是按字节计算的,1M约等于1000000字节,然后可根据自己的实际需要相应的修改即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值