【Windows核心编程笔记】第十八章 堆

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhao3132453/article/details/91400716

进程的默认堆

进程初始化时创建,默认大小为1M

许多Windows函数用到了进程的默认堆,默认堆的访问必须依次进行

默认堆由系统自动创建并在进程终止后自动销毁,我们无法控制

GetProcessHeap 获取默认堆的句柄

 

为什么要创建额外的堆

对组件进行保护

更有效的内存管理

局部访问

避免线程同步开销

快速释放

 

如何创建额外的堆

HeapCreate 进程中创建额外的堆

HeapAlloc 从堆中分配内存块

HeapReAlloc  调整内存块大小

HeapSize       获取内存块大小

HeapFree       释放内存块

HeapDestroy 销毁堆

 

其他堆函数

GetProcessHeaps  获取进程中多个堆的句柄

HeapValidate 验证堆的完整性

HeapCompact       接合堆中闲置的内存块,并撤销调拨给堆中闲置内存块的存储器

HeapLock、HeapUnlock 用于线程同步,指定堆的所有者(一般内部调用,无需手动)

HeapWalk遍历堆,用于调试

猜你喜欢

转载自blog.csdn.net/zhao3132453/article/details/91400716