进程的默认堆
进程初始化时创建,默认大小为1M
许多Windows函数用到了进程的默认堆,默认堆的访问必须依次进行
默认堆由系统自动创建并在进程终止后自动销毁,我们无法控制
GetProcessHeap 获取默认堆的句柄
为什么要创建额外的堆
对组件进行保护
更有效的内存管理
局部访问
避免线程同步开销
快速释放
如何创建额外的堆
HeapCreate 进程中创建额外的堆
HeapAlloc 从堆中分配内存块
HeapReAlloc 调整内存块大小
HeapSize 获取内存块大小
HeapFree 释放内存块
HeapDestroy 销毁堆
其他堆函数
GetProcessHeaps 获取进程中多个堆的句柄
HeapValidate 验证堆的完整性
HeapCompact 接合堆中闲置的内存块,并撤销调拨给堆中闲置内存块的存储器
HeapLock、HeapUnlock 用于线程同步,指定堆的所有者(一般内部调用,无需手动)
HeapWalk遍历堆,用于调试