AfxCheckMemory

此函数将验证释放的内存池并输出所要求的错误消息。

BOOL AfxCheckMemory( );

返回值

非零,如果没有内存错误;否则 0。

备注

如果函数检测到没有内存损坏,它什么也不打印。

堆上当前分配的所有内存块都检查,包括 new 分配的但不包括直接调用底层内存分配器分配的,如 malloc 函数或 GlobalAlloc Windows 函数 如果发现任何块损坏,消息打印到调试输出。

如果包括行:

#define new DEBUG_NEW

在程序模块中,后来对 AfxCheckMemory 的调用显示分配的内存的文件名和行号。

备注

如果模块包含序列化类的一个或多个实现,则必须在 IMPLEMENT_SERIAL 宏调用后放置 #define 行。

此函数仅在 MFC 调试版本中工作。

示例

CAge* pcage = new CAge(21);  // CAge is derived from CObject.
Age* page = new Age(22);     // Age is NOT derived from CObject.
*(((char*)pcage) - 1) = 99;   // Corrupt preceding guard byte
*(((char*)page) - 1) = 99;    // Corrupt preceding guard byte
AfxCheckMemory();

要求

头文件: afx.h

请参见

概念

MFC 宏和全局函数