HEAP: Free Heap block XXXX modified at XXXX after it was freed 的处理

本文介绍了在Windows XP SP3环境下,使用VC2008开发过程中遇到的HEAP异常情况,特别是“Free Heap block XXXX modified at XXXX after it was freed”的错误。在Debug模式下,通过_CrtSetDbgFlag和_CrtMemCheckpoint等调试函数,配合内存快照和_CrtMemBlockHeader结构,定位并解决内存修改错误的方法。通过查看内存块链表,可以找到错误的文件和行号,从而修复问题。
摘要由CSDN通过智能技术生成
 HEAP: Free Heap block XXXX modified at XXXX after it was freed 的处理

环境:Windows XP SP3,VC2008

在开发过程中,偶尔会遇到程序提示 HEAP异常的情况

以下讨论限于Debug模式

常见提示如下

vc的输出窗口提示:

翻译过来就是 某个已经释放的堆空间被修改了,就是某块动态申请(malloc/new)的内存,在它被释放(free/delete)后,又被使用了。

比如编写了如下的代码,就会有这个提示

以上代码比较简单,可以很容易的看出问题出在哪里,当代码量比较大的时候,就不是一眼就能看出来了。

在以上代码中,调试器断在了line31,那是一句申请空间的语句,当申请空间的时候,crt会进行一定的检查,所以就发现了这个heap 错误。

为了查找是哪一个地方的内存错误,

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值