CCRTHeap 类

此类使用 CRT 堆函数实现 IAtlMemMgr

语法

class CCRTHeap : public IAtlMemMgr

成员

公共方法

名称 描述
CCRTHeap::Allocate 调用此方法来分配内存块。
CCRTHeap::Free 调用此方法以释放由该内存管理器分配的内存。
CCRTHeap::GetSize 调用此方法以获取此内存管理器分配的内存块的分配大小。
CCRTHeap::Reallocate 调用此方法以重新分配由该内存管理器分配的内存。

备注

CCRTHeap 使用 CRT 堆函数(包括 mallocfreerealloc_msize)实现内存分配函数。

示例

请参阅 IAtlMemMgr 的示例。

继承层次结构

IAtlMemMgr

CCRTHeap

要求

标头:atlmem.h

CCRTHeap::Allocate

调用此方法来分配内存块。

virtual __declspec(allocator) void* Allocate(size_t nBytes) throw();

参数

nBytes
新内存块中请求的字节数。

返回值

将指针返回到新分配内存块的起始位置。

注解

调用 CCRTHeap::FreeCCRTHeap::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 类