标签:
Detected memory leaks! Dumping objects ->
有内存泄露。
确定内存泄露的地方
根据内存泄露的报告,有两种消除的方法:
第一种比较简单,就是已经把内存泄露映射到源文件的,可以直接在"输出"窗口中双击包含文件名和行号的行
第二种比较麻烦,就是不能映射到源文件的,只有内存分配块号。
这种情况我采用一种"试探法"。由于内存分配的块号不是固定不变的,而是每次运行都是变化的,所以跟踪起来很麻烦。但是我发现虽然内存分配的块号是变化的,但是变化的块号却总是那几个,也就是说多运行几次,内存分配的块号很可能会重复。因此这就是"试探法"的基础。
1.先在调试状态下运行几次程序,观察内存分配的块号是哪几个值;
2.选择出现次数最多的块号来设断点,在代码中设置内存分配断点。
在APP初始化时添加如下一行(对于第 18 个内存分配): ,使用此方法成功找到了一个内存泄露问题。
_crtBreakAlloc = 18;
_CrtSetBreakAlloc(18);
标签:
原文地址:http://blog.csdn.net/shuilan0066/article/details/42148219