根据我对动态内存分配的了解,堆似乎只是一个丰富的内存池,您可以根据需要使用它。我的问题是,为什么不总是将堆用于变量和对象,而忘记堆栈?
答案 0 :(得分:4)
从性能角度来看,堆栈上的分配是“免费的”。堆分配相对昂贵。
另外,从概念上讲,它可以让对象在超出范围后立即被丢弃。
答案 1 :(得分:1)
当我需要大量内存来执行单个计算时,我更喜欢堆栈,而项目涉及执行许多此类计算。我不会使用堆来分割内存 只要一个不超过几百个字节就可以使用堆栈,任何更多的东西都可能试图覆盖你的进程的其他段而使它崩溃。