内存泄漏(Memory Leak)是指程序中已动态分配的堆内存因为某种诱因程序未释放或未能释放,造成系统内存的浪费,导致程序运行速率减缓甚至系统崩溃等严重后果。通过new 语句(C语言 malloc)分配空间在堆内存上,需要自动释放,而在局部变量c语言内存泄漏的解决方法c语言内存泄漏的解决方法,即函数中的新建的普通变量 如int a = 0;分配在栈中,在函数执行完成后,自动释放。
在用搜索引擎找寻C++内存泄漏的测量方式时,发现大部分都比较麻烦,有点须要导出外部库,因此这儿介绍一种简单的方式,在须要检查显存泄露的代码的.cpp文件中加入如下代码。不需要测量的不要加。
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;//注意__FILE__是双下划线
#endif
位置如图
查看在Dubug模式下的输出界面如图。图片反例中,新建了int类型的字段,但是没有释放。双击提示信息,即可定位到外泄地方.当然假如你的一条显存泄漏句子,被多次调用,会在多个地方提示泄漏,可能须要多尝试几次,直到定位确切。一般情况下双击行号小的,可以定位,比如图中的.cpp(18)。
转载说明出处,添加文章链接,谢谢。