“默认堆大小为1 MB”。我怎么能更多地malloc(),我是否误解了'堆'这个词?

时间:2011-09-22 05:54:13

标签: windows linker stack heap portable-executable

在Microsoft Visual C ++中,我需要更多的堆栈空间。所以我进入了链接器属性并将其提升。但后来我注意到另一个属性:“堆保留大小”(链接器选项:/ HEAP),注意:“默认堆大小为1 MB”。

为什么我可以在堆上使用堆大小为1MB的malloc 50MB“”?

如果我对堆栈执行相同操作,则会出现堆栈空间异常。

1 个答案:

答案 0 :(得分:1)

  

为什么我可以在堆上大小为1MB的malloc 50MB?

     

如果我对堆栈做同样的事情,我会得到一个堆栈空间   异常。

那是因为堆可以增长而堆栈是固定的。 1MB只是堆的初始大小。