如何增加堆栈/堆上分配的最大内存

  • 如何增加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

    下一篇: What and where are the stack and heap?