example:
int *t;
t=new int;
...
delete t;
int *tp;tp=new int[6];
...
delete [] tp;

解决方案 »

  1.   

    delete   是释放单一的元素
    delete[] 是释放一个数组
    比如
    class a{
    int u;int i
    };
    a* a1;a1=new a;
    delete a1;
    a1=new a[30];
    delete[] a1;如果在此用delete的话,就可能会有内存漏洞
      

  2.   

    再说明一点:象单一的元素,如int,char ....这些数组是不需要用delete[]释放的
    但是对类的数组一定要用delete[]释放,不然析构函数是不会掉用的。
      

  3.   

    考虑有个类
    class cc{
    public:
    char * pc;
    cc(){pc = new char[100];};
    ~cc(){delete pc;};
    };如果你这样分配
    cc * pcc = new cc[100];//调用了100个构造函数
    那释放时
    delete [] pcc;
    如果不加[]
    delete pcc;
    则后99个cc的析构函数则不会调用,这有内存泄漏