CCRTHeap 类
此类使用 CRT 堆函数实现 IAtlMemMgr。
语法
class CCRTHeap : public IAtlMemMgr
成员
公共方法
名称 | 描述 |
---|---|
CCRTHeap::Allocate | 调用此方法来分配内存块。 |
CCRTHeap::Free | 调用此方法以释放由该内存管理器分配的内存。 |
CCRTHeap::GetSize | 调用此方法以获取此内存管理器分配的内存块的分配大小。 |
CCRTHeap::Reallocate | 调用此方法以重新分配由该内存管理器分配的内存。 |
备注
CCRTHeap
使用 CRT 堆函数(包括 malloc、free、realloc 和 _msize)实现内存分配函数。
示例
请参阅 IAtlMemMgr 的示例。
继承层次结构
IAtlMemMgr
CCRTHeap
要求
标头:atlmem.h
CCRTHeap::Allocate
调用此方法来分配内存块。
virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();
参数
nBytes
新内存块中请求的字节数。
返回值
将指针返回到新分配内存块的起始位置。
注解
调用 CCRTHeap::Free 或 CCRTHeap::Reallocate 来释放此方法分配的内存。
使用 malloc 实现的。
CCRTHeap::Free
调用此方法以释放由该内存管理器分配的内存。
virtual void Free(void* p) throw();
参数
p
指向此内存管理器以前分配的内存的指针。 NULL 是有效值,不执行任何操作。
注解
使用 free 实现的。
CCRTHeap::GetSize
调用此方法以获取此内存管理器分配的内存块的分配大小。
virtual size_t GetSize(void* p) throw();
参数
p
指向此内存管理器以前分配的内存的指针。
返回值
返回分配的内存块的大小(以字节为单位)。
备注
使用 _msize 实现的。
CCRTHeap::Reallocate
调用此方法以重新分配由该内存管理器分配的内存。
virtual __declspec(allocator) void* Reallocate(void* p, size_t nBytes) throw();
参数
p
指向此内存管理器以前分配的内存的指针。
nBytes
新内存块中请求的字节数。
返回值
将指针返回到新分配内存块的起始位置。
备注
调用 CCRTHeap::Free 可释放由此方法分配的内存。 使用 realloc 实现的。
另请参阅
类概述
CComHeap 类
CWin32Heap 类
CLocalHeap 类
CGlobalHeap 类
IAtlMemMgr 类