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

delete用法的迷惑

2013-03-14 
delete用法的疑惑函数名{.......OPE* pOpeNew new OPEpOpeNew-opeName strpOpeNew-opeNum szNum

delete用法的疑惑
函数名
{
    .......

    OPE* pOpeNew = new OPE;
    pOpeNew->opeName = str;
    pOpeNew->opeNum = szNum;
    pOpeNew->opeMail= szMail;
    m_opeList.AddTail(pOpeNew);
}

如果我要释放pOpeNew的话,直接delete pOpeNew会发生崩溃,我大概知道原因,我想问这种情况下怎样释放我new的对象???? delete VC MFC C++
[解决办法]
当你的这部分的内存从list中移除的时候就可以delete了
[解决办法]
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。

[解决办法]
从m_opeList里面移除的时候(之后),再delete
[解决办法]
  m_opeList.AddTail(pOpeNew);

你把 pOpeNew的指针保存到m_opList里面去了,在delete pOpeNew之后,pOpeNew内容释放,现在内容的地址好保存在m_opeList中。当m_opeList释放的时候,就会再次delete pOpeNew,结果就跑飞了。

热点排行