C++ 在析构函数中delete出现内存储器泄露

C++ 在析构函数中delete出现内存泄露
CConfigDlg::CConfigDlg(CWnd* pParent /*=NULL*/)
: CDialog(CConfigDlg::IDD, pParent)
/*, m_comboCode(_T(""))*/
{
m_addr = new char[128];
memset(m_addr,0,sizeof(m_addr));
}

CConfigDlg::~CConfigDlg()
{
if (m_addr!=NULL) delete []m_addr;
}

代码如上
在对话框退出,执行析构函数时,出现内存泄露,执行delete之前,m_addr地址都正常,这是什么原因?
c++ 内存泄露 对话框 delete 构造

------解决方案--------------------
检查是否资源泄漏的办法之一:
在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象
让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!

------解决方案--------------------
俺有些怀疑楼主是不是理解错了“内存泄露”的概念。

俺感觉楼主这个delete是非法访问内存导致程序崩溃的节奏。
------解决方案--------------------
引用:
错误不在这里!!


贴全代码
这里只有一个构造函数,一个析构函数

构造函数new []
析构函数delete []

除非内存分配失败,代码没有任何问题。





------解决方案--------------------
我觉得有一种情况可以假设:

这个指针中间被你重新赋过值,那你这里delete的可能不是你new的东西,所以出错。
------解决方案--------------------
new []
delete []
没有问题,
memset(m_addr,0,sizeof(m_addr));倒是有点问题,不过问题不大。
memset(m_addr,0,sizeof(char)*128);才能把128 字节清0;
只是,这没啥大问题。
所以这里贴出的代码,不是出问题的地方。