我看了些资料,说当删除基本类型的时候两者是一样的,当删除自定义类型的时候就不一样了。
不知道在编译器方面讲这两者有什么区别?什么时候两者是不能通用的?
谢谢。

解决方案 »

  1.   

    float *p = new float[100];
    申请了4*100个字节,可以存放100个float,
    以后防问第i个float只要p[i]即可,
    但是释放的时候要注意:
    delete p;//仅仅释放了第0个元素,也就是4字节
    delete []p;//全部释放
      

  2.   

    简单的说,delete 删除单个对象,基本上没什么区别;delete [] 删除对象数组
    对于简单对象例如char*,delete 和 delete []都可以,但是最好用delete[];
    但是对于复杂对象,例如类对象,由于包含析构函数,一定要用delete[]删除数组;可以参考inside the c++ object model
      

  3.   

    new[] vs delete[]
    new vs delete
    malloc vs free