不要让内存泄漏

Posted by Ada on February 26, 2019

内存泄漏是非常不好得编程习惯。一个内存泄漏得程序。运行不会太久。有时候会把机器的内存耗光。卡死系统,有时候你甚至不能再在vs中退出调试。

windows + visual studio下的解决方案

只要在编译文件.cpp前加入这几行

#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#define NEW_WITH_MEMORY_LEAK_CHECKING new(_NORMAL_BLOCK, __FILE__, __LINE__)
#define new NEW_WITH_MEMORY_LEAK_CHECKING
  • 如果你有多个cpp.就把那一段写在大家都会直接或者间接#include的头文件里
  • 如果有预编译头,就贴在stdafx.h最上方
  • 一个cpp,就贴在最上方就好了

之后,在程序运行即将结束的时候,添加以下代码段,一般加在return 前就可以了

_CrtDumpMemoryLeaks();

如此当程序运行结束后。new了没有delete或者malloc没有f’ree。都会在窗口打印出写在的对象的长度,以及具体在哪一行申请的内存。双击就可以跳转。

采用工具VLD

VLD(Visual Leak Detector)下载( https://kinddragon.github.io/vld/)

全部默认安装,会自动设置环境变量。

接下来只要在工程中引入

#include <vld.h> 

希望大家养成良好的编程习惯,避免内存泄漏


本站总访问量: