C++中delete和 delete[]的区别

时间:2023-12-23 18:05:55

总的原则是,如果是用new[]创建的,则用delete[]删除,如果是用new创建的,则用delete删除。

对于基本类型,比如char *p=new char[20];如果删除时,delete p和delete []p效果是一样的

但如果对于自定义的类,比如 Student  *sp=new Student[20];这时,如果delete sp,则只调用数组中第一个student的析构函数,而如果用delete []sp,则调用全部20个析构函数。