在 类中定义了一个指针,例如 char *egxx;  并用new在OnInitDialog()初始化了
 在OnDestroy() 中又delete了 为什么在Debug下 退出程序时 会提示出错
 是不是不能在OnDestroy中delete,那应该怎么做呀

解决方案 »

  1.   

    在destroy的时候,你定义的变量应该已经被系统释放了吧?
      

  2.   

    char *egxx
    你这个egxx起码应该是类的成员变量或者全局的吧
    要不然你delete的时候,怎么找到你的那块内存啊
      

  3.   

    是呀 定义的就是一个成员变量呀 
      提示在什么cmdtarg.cpp 第48行中有误 我看了一下 也不明白什么意思
      

  4.   

    在构造函数中设置指针:p = NULL
    在析构函数中增加释放代码:if (p != NULL) { delete p; p = NULL; }
    在你的 OnDestroy 中也增加如上的释放代码,记得一定要置指针为空。
    有了上面的步骤,不论你在哪里分配的内存,应该都可以得到正确的释放了。(多线程情况例外)
      

  5.   

    看看egxx指向的地址变了没有,很有可能被修改了
      

  6.   

    delete操作应该放到析构函数里去做,你这样是不规范的