如下代码:CFileDialog *pDlg = new CFileDialog(...);
if(pDlg->Domodal() == IDOK)
{
...
}
//这里需要delete pDlg吗?还是domodal后自动delete了?

解决方案 »

  1.   

    需要,c++ 的 new和 delete 数量必定相等的,
    你这个根本不需要new,直接用栈空间即可
      

  2.   

    是的,new和delete是个C++的问题。而且你用了DoModal了,只要
    CFileDialog dlg;
    dlg.DoModal();就可以了不用:
    CFileDialog *pDlg = new CFileDialog(...);
      

  3.   

    有new必须delete
    有malloc必须free
    都是配套的,你这种直接声明对象就行了,没必要new
      

  4.   


    只要你注意不要忘记 delete,没人拦着你用指针……