VS编译的程序出现内存不够的解决办法

LINK的/STACK选项 

  /STACK   :reserve[,commit] 

  reserve:栈总大小 

  commit:程序开始时系统提供的实际内存量 

  缺省:1M,8K 

  参数为0取缺省值 

 

 

今天在VC++.NET中运行聚类程序,老是说Stack   OverFlow,  后来才发现是栈空间太小了。

单单保存100个网页的数据量就比较大了。

把堆栈的大小已经设置为: 

  堆栈保留大小为:100000000 

  堆栈提交大小为  100000000; 

就没问题了。

VS修改:

 

 

在 Visual Studio 开发环境中设置此链接器选项

  • 打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性
  • 单击“链接器”文件夹。
  • 单击“系统”属性页。
  • 修改下列任一属性:
    • 堆栈提交大小
    • 堆栈保留大小 

问题解答:

 

方法一:STACKSIZE   定义.def文件

 

     语法:STACKSIZE reserve[,commit]

     reserve:栈的大小;commit:可选项,与操作系统有关,在NT上只一次分配物理内存的大小

 

方法二:设定/STACK

     VC6.0修改:

     打开工程,依次操作菜单如下:Project->Setting->Link,在Category 中选中Output,然后

在Reserve中设定堆栈的最大值和commit。

 

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

大会使栈开辟较大的值,可能增加内存的开销和启动时间

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值