请问delete和delete[]有什么区别,各位高手请指点

解决方案 »

  1.   

    delete删除的是一个变量。delete[]是删除数组。
      

  2.   

    new/delete 的使用要点
           运算符new使用起来要比函数malloc简单得多,例如:int  *p1 = (int *)malloc(sizeof(int) * length);int  *p2 = new int[length];这是因为new内置了sizeof、类型转换和类型安全检查功能。对于非内部数据类型的对象而言,new在创建动态对象的同时完成了初始化工作。如果对象有多个构造函数,那么new的语句也可以有多种形式。例如class Obj{public :    Obj(void);      // 无参数的构造函数    Obj(int x);     // 带一个参数的构造函数…}void Test(void){    Obj  *a = new Obj;    Obj  *b = new Obj(1);    // 初值为1    …    delete a;    delete b;}如果用new创建对象数组,那么只能使用对象的无参数构造函数。例如    Obj  *objects = new Obj[100];    // 创建100个动态对象不能写成    Obj  *objects = new Obj[100](1);// 创建100个动态对象的同时赋初值1在用delete释放对象数组时,留意不要丢了符号‘[]’。例如    delete []objects;    // 正确的用法delete objects;    // 错误的用法后者相当于delete objects[0],漏掉了另外99个对象。
      

  3.   

    我能这样写吗?int *p;
                 p=new int[100];
                  delete p;