new delete 释放内存问题
代码如下:
运行到delete[] template;就失败。
unsigned char* template;
int template_length;
CString DataStyle=_T("data(*.dat)|*.dat||");
CFileDialog dlg(TRUE,NULL,FALSE,NULL,DataStyle,NULL);
(dlg.m_ofn).lpstrTitle="open data";
if (dlg.DoModal()==IDOK)
{
dlg.CenterWindow();
CString m_strdataPath=dlg.GetPathName();
FILE*fp;
int i=0;
fp=fopen(m_strdataPath,"r");
if (fp==NULL)
{
AfxMessageBox(_T("Load data failed!"));
}
fscanf( fp, _T("%d\n"), &template_length);
template=new unsigned char[template_length];
while(!feof(fp))
{
fscanf( fp, _T("%d "), &template[i]);
i++;
}
delete[] template;
}
运行到delete[] template;就失败。
...全文
相关推荐
C++动态内存分配(new/new[]和delete/delete[])详解
主要介绍了C++动态内存分配(new/new[]和delete/delete[])详解的相关资料,需要的朋友可以参考下
new,delete和指针
new,delete和指针实例讲解
C++中new和delete的介绍
今天小编就为大家分享一篇关于C++中new和delete的介绍,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
c++创建二维动态数组与内存释放问题
主要介绍了c++创建二维动态数组与内存释放问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
C++ 使用new与delete需注意的原则
C++的动态内存管理是通过new和delete两个操作来完成的,即用new来申请空间,用delete来释放空间。在使用new和delete时,注意以下原则。 1.new与delete需一一对应 用new操作申请空间,如果申请成功,必须在以后的某个时刻用delete释放该空间,既不能忘记释放,也不能多次释放。前者会引起内存泄露,后者会引起运行时错误。如下面的程序。 #include <iostream> using namespace std; int main() { int *p; p=new int(3); if(p) { delete p; } delete p; r



