声明一个对象,在超出对象的作用范围时,会自动释放资源
new一个对象,如果你不显式释放资源,哪怕你结束程序也不能收回这些资源,可以用delete释放。

解决方案 »

  1.   

    声明的对象必须由系统删除(超过生命周期后)。new生成的对象可以由自己控制删除,用delete。
      

  2.   

    new 在堆中产生!必须手工删除!
      

  3.   

    看我的程序:
    Cdialog1::onbutton1
    {CDialog2 dlg;
    dlg.domodul();
    }
    然后在全局变量是
    CTypedPtrList<CPtrList,CMyStruct*>m_list;
    然后在
    CDialog2::addlist()
    {
    CMyStruct*mm=new CMyStruct;
    ....
    m_list.AddTail(mm);
    }
    这样在Cdialog1中就是访问不到那个m_list的值,指针还在,内容没有了。
    所以我觉得new的东东也不一定老是在那里的,是吗?