MFC检查出来的,看不到代码:
Detected memory leaks!
Dumping objects ->
{148564} normal block at 0x0B23E7A0, 0 bytes long.
 Data: <> |?
{139390} normal block at 0x0B23E9B8, 0 bytes long.
 Data: <> |?
{123584} normal block at 0x03CC1FA8, 0 bytes long.
 Data: <> |?
{120225} normal block at 0x0B245670, 0 bytes long.
 Data: <> |?
Object dump complete.
请问这可能是什么情况?是否存在泄漏的内存碎片?

解决方案 »

  1.   

    在你的cpp文件头部加上类似:
    #ifdef _DEBUG
    #define new _DEBUG_NEW
    #endif
    这样的宏,调试运行的时候就可以定位泄漏点;注意这个在MFC工程中有用,具体看看MSDN中介绍调试技术的部分;其他工程也可以模仿。
      

  2.   

    如下式:
    BYTE *pByte = new BYTE[nLen];
    而其中的nLen刚好等于0.在你程序退出时,没有删除pByte,就会出现你的提示。
    也就是说你的问题是,在退出程序时,有申请的内存没有释放,有内存泄露,而泄露的大小恰好是0.
      

  3.   

    应该是存在泄漏的。用bounds checker精确捕获
      

  4.   

    胡说,C++标准new不允许产生0字节内存求情,如果是0字节请求C++标准至少申请1个字节的内存
      

  5.   

    也就是如果你申请0字节内存,new会返回1个字节的有效地址,这是C++标准