A a; 是在栈中分配内存,不需要你自己去释放。A* a = new A;是在堆中分配,,需要你自己用delete(a)来释放。

解决方案 »

  1.   

    new 的一定要自己是放掉
    没有new 的会被系统自动的释放
      

  2.   

    A a, 在栈上建对象,当程序超出a的作用域时,自动消毁
    A *pa = new A(); 在堆上建对象,当程序超出pa的作用域时,不自动消毁
    只有显示调用delete pa时,才能消毁对象。在栈上对象的内存空间是编辑的时候取得的,堆上的空间是程序运行时动态申请的所以在栈上建对象对在堆上建对象快!栈是一个后进先出的内存块,用来保存运行时函数调用的参数和局部变量;堆内存是程序运行时申请的,可以随机访问,没有先后顺序。
      

  3.   


    回答了gameboy999(正为女孩心烦中...无心编程)的问题,就知道了....