MFC 内存泄露问题

来源:互联网 发布:历史的拐点纪录片知乎 编辑:程序博客网 时间:2024/06/04 19:41
内存泄露信息示例 : 
{49} normal block at 0x00382F78, 40 bytes long.
Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD 
---------------------------------------------------------------------------------
显示信息包含:
  1.内存分配的编号(大括弧中的数字);
  2.内存快的类型(普通型、客户端型、CRT型);
          <1>普通型内存块是你的程序平常分配的内存类型。
          <2>客户端型内存块是MFC程序给需要析构的对象分配的内存块。
          <3>CRT内存块是CRT库为自己使用而分配的内存块。
          <4>自由块,它是已经被释放的内存块;
          <5>忽略块,它是已经被特殊标示的内存块。
  3.16进制表示的内存位置;
  4.内存快的大小;

  5.前16bytes的内容。


对于类似这样的内存泄露提示:

       我们可以利用CRT函数_CrtSetBreakAlloc(49);  进行定位。

       这个函数,就设置了当分配上面49那块内存时,就中断,然后就可以查看调用栈,知道那里出错了。不过,使用这个来判断,就要仔细地分析了,由于内存的分配是动态的,并不能保证每次分配内存的号码是一样的。


以上转自MFC内存泄露与检测

http://blog.csdn.net/netanimals/article/details/7454820


0 0
原创粉丝点击