【发布时间】:2011-08-15 17:33:04
【问题描述】:
我正在使用 C++ 编程,我一直想知道堆栈内存与堆内存到底是什么。我所知道的是,当我调用 new 时,我会从堆中获取内存。如果如果创建局部变量,我会从堆栈中获取内存。在互联网上进行了一些研究后,最常见的答案是堆栈内存是临时的,而堆内存是永久的。
堆栈和堆内存模型是操作系统还是计算机体系结构的概念?那么其中一些可能不遵循堆栈和堆内存模型,或者它们都遵循它?
堆栈和堆内存是对虚拟内存的内存模型的抽象(可能在磁盘和 RAM 之间交换内存)。那么堆栈和堆内存在物理上可能是 RAM 还是磁盘?那么堆分配似乎比堆栈分配慢的原因是什么?
另外,主程序是在栈还是堆中运行?
另外,如果进程用完分配的堆栈内存或堆内存会怎样?
谢谢
【问题讨论】:
-
@meagar 这确实引发了您链接到的问题中未提及的一些问题。