vs2017 如何定位C【皇牌天下投注网】 内存泄漏,

来源:http://www.prospettivedarte.com 作者:计算机教程 人气:176 发布时间:2019-11-09
摘要:vs2017 如何定位C 内存泄漏,vs2017泄漏 定位内存泄漏是C 的一个棘手问题,可行的方法之一如下: //在主函数文件中加入如下代码#include stdlib.h #include crtdbg.h #ifdef _DEBUG #define new new(_NORMA

vs2017 如何定位C 内存泄漏,vs2017泄漏

定位内存泄漏是C 的一个棘手问题,可行的方法之一如下:

//在主函数文件中加入如下代码

#include <stdlib.h>  
#include <crtdbg.h>  


#ifdef _DEBUG  
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)  
#endif  

void EnableMemLeakCheck()  
{  
    int tmpFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);  
    tmpFlag |= _CRTDBG_LEAK_CHECK_DF;  
    _CrtSetDbgFlag(tmpFlag);  
}  

using namespace std;  
int main()  
{  
    EnableMemLeakCheck();  
    //_CrtSetBreakAlloc(这里有第一遍注释掉, 第二遍再执行);  
        自己的代码  
}  

在debug模式下,在输出中可以看到如下信息:

皇牌天下投注网 1

请注意大括号{}中的内容,此处是{156},这就是程序可能内存泄露的地方。

将上面注释的代码加入,并将大括号中的数字填入,就可以让程序停在内存泄漏的地方。

如下,这里我让程序停在156处:

//在主函数文件中加入如下代码

#include <stdlib.h>  
#include <crtdbg.h>  


#ifdef _DEBUG  
#define new new(_NORMAL_BLOCK, __FILE__, __LINE__)  
#endif  

void EnableMemLeakCheck()  
{  
    int tmpFlag = _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG);  
    tmpFlag |= _CRTDBG_LEAK_CHECK_DF;  
    _CrtSetDbgFlag(tmpFlag);  
}  

using namespace std;  
int main()  
{  
    EnableMemLeakCheck();  
    _CrtSetBreakAlloc(156);  
        自己的代码  
}  

参考:https://www.cnblogs.com/luruiyuan/p/6916634.html

http://www.bkjia.com/cjjc/1305482.htmlwww.bkjia.comtruehttp://www.bkjia.com/cjjc/1305482.htmlTechArticlevs2017 如何定位C 内存泄漏,vs2017泄漏 定位内存泄漏是C 的一个棘手问题,可行的方法之一如下: // 在主函数文件中加入如下代码 #include...

本文由皇牌天下投注网发布于计算机教程,转载请注明出处:vs2017 如何定位C【皇牌天下投注网】 内存泄漏,

关键词:

上一篇:CentOS利用inotify rsync实现文件同步

下一篇:没有了

最火资讯