我的程序肯定有内存泄漏,但是我一直找不到。我也不知道用什么方法找?
vc提供找内存泄漏的方法吗?
不好意思,我水平有限。

解决方案 »

  1.   

    一个最简单的方法:程序在调试状态下执行,等关闭后在Output窗口里能看到
    The thread 0x154 has exited with code 0 (0x0).
    The thread 0xDA0 has exited with code 0 (0x0).
    The program '......' has exited with code 0 (0x0).
    就说明线程和程序是正常结束,没有内存泄漏.
    或者使用PageHeap.EXE或GFlags.EXE检查内存越界错误,使用方法可以看一下帮助.
      

  2.   


    MSDN: 用索引查找“memory leaks”,可以找到相关文章。
    如果你用的是MFC,可以用CMemoryState其他相关的信息,如查找“memory leak debugging”也是有帮助的,建议你将这些参考仔细看一下。如果你自己包装一下malloc, free, realloc, operator new, operator delete,也可以记录下分配和释放的内存信息,自行判断和定位那个文件
    的哪一行出了问题。__FILE__,__LINE__等可以在程序中直接使用,请看
    MSDN.
      

  3.   

    可以的,debug,然后让他自己结束,如果出现类似:
    normal block at 0x007702B0, 1 bytes long.
     Data: < > 0A 
    Object dump complete.就是内存泄漏
      

  4.   

    可以的,debug,然后让他自己结束,如果出现类似:
    normal block at 0x007702B0, 1 bytes long.
     Data: < > 0A 
    Object dump complete.就是内存泄漏