很简单的关于c++操作符new delete的菜鸟级问题,分值100!
typedef struct CBinfo
{
char name[14];
long ID;
int DB_DH;
}CBINFORMATION;
class CCBLINKApp : public CWinApp
{
......
CBINFORMATION* m_cbIn;
......
}
......
CCBLINKApp::CCBLINKApp()
{
......
m_cbIn=NULL;
......
}
BOOL CCBLINKApp::GetParaFunc(CString PathName)
{
if (m_cbIn!=NULL)
{
delete[] m_cbIn;
m_cbIn=NULL;
}
.........
m_cbIn=new CBINFORMATION [nCount];
..........
}
为什么程序一运行到 GetParaFunc(CString PathName)中delete[] m_cbIn时出错?
提示 "Debug Error!
DAMAGE: after Normal block(#117) at 0x00378f98."
我的原意是:因为程序中多次运行GetParaFunc(CString PathName),需每次动态调整m_cbIn数组大小,重新分配内存地址,防止每次运行到GetParaFunc(CString PathName)时,多次分配m_cbIn数组内存,造成内存资源消耗太多.
请各位大侠指点!