_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

.NET Framework 等效项

系统:: 诊断:: PerformanceCounter

请参见

参考

调试实例

_crtDbgFlag

_CrtSetDbgFlag