_CrtCheckMemory
在调试堆确认的完整性内存分配 (请只调试版本)。
int _CrtCheckMemory( void );
返回值
如果成功, _CrtCheckMemory 返回 TRUE;否则,该函数返回错误。
备注
_CrtCheckMemory 功能验证调试堆管理器分配的内存通过验证基础基堆,并检查每个内存块。 如果错误或内存不一致在基础基堆、调试标题信息或复盖缓冲区遇到, _CrtCheckMemory 生成使用描述错误条件的信息的调试报表。 当 _DEBUG 未定义时,在预处理期间,对 _CrtCheckMemory 中移除。
使用 _CrtSetDbgFlag 功能, _CrtCheckMemory 行为可以通过设置 _crtDbgFlag 标志的位域控件。 ,在内存分配请求的操作时,启用 _CRTDBG_CHECK_ALWAYS_DF 位的结果中的字段在调用 _CrtCheckMemory 。 虽然此方法会减慢执行,对于快速查看错误很有用。 启用 _CRTDBG_ALLOC_MEM_DF 位域原因 _CrtCheckMemory 不验证堆和不立即返回 TRUE。
由于此函数返回 TRUE 或 错误,可以传递给之一 _ASSERT 宏创建一个简单的调试错误处理机制。 ,如果在堆损坏,检测下面的示例生成断言失败:
_ASSERTE( _CrtCheckMemory( ) );
有关 _CrtCheckMemory 方式的更多信息可与其他调试功能,请参见 报告堆的状态功能。 有关内存管理和调试堆的概述,请参见 内存管理和调试堆。
要求
实例 |
必需的头 |
---|---|
_CrtCheckMemory |
crtdbg.h |
有关更多兼容性信息,请参见中介绍的 兼容性 。
库
只调试 C 运行库 的版本。
示例
有关此示例演示如何使用 _CrtCheckMemory,请参见 crt_dbg1。