【发布时间】:2013-09-11 08:11:04
【问题描述】:
我刚刚听说,C++ 有两种内存块,可以在运行时分配和释放。据说,“malloc”和“free”使用称为Free Memory Space的内存,“new”和“delete”使用Heap。
好吧,我想知道 Free Memory Space 和 Heap 有什么区别?
C++ operator new 的底层实现是否依赖于 C 的 malloc?
如果“new”和“malloc”确实使用了不同的内存块,那么编译器是否有必要为这两种块(分别)预留一定的内存,以防止“new”和“malloc”从重叠分配的内存?
【问题讨论】:
-
看到这个stackoverflow.com/questions/6161235/…。我想你可能正在阅读 gotw.ca/gotw/009.htm 的旧 Herb Sutter 文档,它在免费存储和堆之间有所不同