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