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