内存泄露检测函数_CrtCheckMemory()

内存泄露检测函数_CrtCheckMemory()

确定分配在调试堆得内存块的完整性(仅限调试版本)。

int _CrtCheckMemory( void );

返回值

如果成功,则 _CrtCheckMemory 返回 TRUE;否则函数返回 FALSE。

备注

_CrtCheckMemory() 函数通过验证基本堆和检查每个内存块来确定调试堆管理器分配的内存。
如果在基础堆、调试头信息或是重写缓冲区中遇到错误或是内存不一致,则 _CrtCheckMemory() 生成描述错误情况信息的调试报告。 当 _DEBUG 未定义时,在预处理期间移除对 _CrtCheckMemory 的调用。该函数是在Debug版本中作用,即在Release版本中,该函数将不起作用
通过使用_CrtSetDbgFlag 设置_crtDbgFlag标志的位字段来控制_CrtCheckMemory 的行为。 打开 _CRTDBG_CHECK_ALWAYS_DF 位字段导致每次请求内存分配操作就调用 _CrtCheckMemory 。 虽然此方法会减慢执行,但是有利于快速查看错误。 关闭 _CRTDBG_ALLOC_MEM_DF 位字段导致 _CrtCheckMemory 不能核实堆并且立即返回 TRUE。
因为函数返回 TRUE 或 FALSE, 所以能传递一个_ASSERT 宏命令来创建一个简单的调试错误处理机制。 如果在堆检测到损坏,则_ASSERTE(CrtCheckMemory())造成断言失败。
可以通过如下语句确定在哪一行上面出现了内存使用异常。

_ASSERTE(CrtCheckMemory());
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值