(本文只适合本人以后复习的需要,不适合其他人的学习,如果你不小心进来了,那么不好意思浪费您的时间了)
几个重要的函数:
GetProcessHeap//得到当前进程的主堆,注意这个失败返回的是NULL而不是INVALID_HANDLE_VALUE
HeapCreate//创建一个堆
HeapDestroy//删除某个堆
HeapAlloc//在某个堆上分配内存空间,跟malloc(calloc)是一致的
HeapFree//释放到某个堆上的某个内存空间,跟free是一致的
HeapReAlloc//重新分配内存空间,跟realloc是一致的。
在windows上面,这些函数是建立在虚拟内存管理之上的,不过c 的函数malloc和free又是通过调用这些函数来进行内存分配的。不过如果调用c 的函数进行内存分配,那么一般都是单个堆的,即在GetProcessHeap这个堆上进行内存分配的,我们不能独立的重新创建一个新的堆。
调用过程:
1)使用HeapCreate或者GetProcessHeap来获取一个堆的句柄
2)使用HeapAlloc来在堆上分配一快内存空间
3)使用HeapFree释放掉这块内存空间
4)使用HeapDestroy来删除掉堆并关闭句柄。