如何增加堆栈/堆上分配的最大内存
如何增加C ++中程序堆栈/堆上分配的最大内存?
增加计算机的RAM会自动增加计算机程序的堆栈/堆内存吗?
在Visual C ++中,您可以使用伪指令#pragma
。 例如:
#pragma comment(linker, "/STACK:2000000")
#pragma comment(linker, "/HEAP:2000000")
您可以使用Visual Studio中的链接选项/堆和/堆栈指定保留的堆大小和堆栈大小。 有关详细信息,请查看以下MSDN文章:
第二次编辑:我从你的评论中看到你在Windows中工作,所以我的Unix下面的答案对你没有什么帮助。 但请参阅使用Visual Studio和C / C ++程序的最大堆栈大小确定堆栈空间。
Linux中的堆栈大小通常是有限的。 命令ulimit -s将给出以千字节为单位的当前值。 您可以更改(通常)文件/etc/security/limits.conf中的默认值。
您还可以根据权限使用setrlimit()
以每个进程为基础对其进行更改。 例如,请参阅我对Segmentation故障的回答:在buffover> 4M时,在Ubuntu的C程序中堆栈分配。
对于堆 ,请参阅例如C中的堆大小限制。但我不相信您可以增加或减少最大大小。
链接地址: http://www.djcxy.com/p/78701.html上一篇: How to increase the maximum memory allocated on the stack/heap