首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

内存泄露有关问题,哪位高手有比较实用的检测方法,或建议

2012-04-14 
内存泄露问题,谁有比较实用的检测方法,或建议内存泄露问题,谁有比较实用的检测方法,或建议如何定位?如何检

内存泄露问题,谁有比较实用的检测方法,或建议
内存泄露问题,谁有比较实用的检测方法,或建议

如何定位?如何检测?如何避免?

今天试了
CRTDBG_LEAK_CHECK_DF
没什么结果

[解决办法]
使用智能指针
[解决办法]
有内存泄露的检测工具的,网上搜下
[解决办法]
我首先想到的就是检测内存泄露的插件 能力有限方法想不出
[解决办法]
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);函数检查内存泄露问题
[解决办法]
自己写个内存管理器吧
[解决办法]
自己封装allocator。
[解决办法]
最简单的方法,定义一个全局变量,每个New的地方++,每个Delete的地方--,那样你就知道到底哪里出问题了
[解决办法]
内存泄露是c++比较麻烦的一个问题!推荐一个vc下的工具 Visual Leak Detector from http://blog.csdn.net/seawen/article/details/3714128
还有一篇博客 http://blog.csdn.net/zxcred/article/details/3228239
楼主学习学习吧!

[解决办法]
建议:不用

[解决办法]
不使用动态内存就不用检测了。(^_^)

C/C++ code
//使用动态分配#include <stdio.h>#include <stdlib.h>#include <malloc.h>int i,L;char *p;void main() {    for (i=0;i<20000;i++) {        L=rand();        p=malloc(L);        if (NULL==p) {            printf("malloc error!\n");            continue;        }        memset(p,0,L);        free(p);    }}//不使用动态分配#include <stdio.h>#include <stdlib.h>#include <memory.h>#define MAXLEN 30000int i,L;char buf[MAXLEN];char *p;void main() {    p=&buf[0];    for (i=0;i<20000;i++) {        L=rand();        if (L>MAXLEN) {            printf("L>MAXLEN==%d, ignore spilth.\n",MAXLEN);            L=MAXLEN;        }        memset(p,0,L);    }}
[解决办法]
auto_ptr应该可以吧

热点排行