堆是为程序的内存分配需求保留的。 它不同于程序代码和堆栈的区域。 典型的 C 程序使用函数 malloc 并 释放 并释放堆内存。 MFC 的调试版本提供C++内置运算符 new
的修改版本,并在 delete
堆内存中分配和解除分配对象。
使用 new
delete
和不使用 malloc 和 free 时,可以利用类库的内存管理调试增强功能,这对于检测内存泄漏非常有用。 使用 MFC 的 Release 版本生成程序时,标准版本的 new
和 delete
运算符提供了一种高效的方式来分配和解除分配内存(MFC 的发布版本不提供这些运算符的修改版本)。
请注意,在堆上分配的对象的总大小仅受系统的可用虚拟内存的限制。