总的原则是,如果是用new[]创建的,则用delete[]删除,如果是用new创建的,则用delete删除。
对于基本类型,比如char *p=new char[20];如果删除时,delete p和delete []p效果是一样的
但如果对于自定义的类,比如 Student *sp=new Student[20];这时,如果delete sp,则只调用数组中第一个student的析构函数,而如果用delete []sp,则调用全部20个析构函数。
2024-02-09 09:42:22
总的原则是,如果是用new[]创建的,则用delete[]删除,如果是用new创建的,则用delete删除。
对于基本类型,比如char *p=new char[20];如果删除时,delete p和delete []p效果是一样的
但如果对于自定义的类,比如 Student *sp=new Student[20];这时,如果delete sp,则只调用数组中第一个student的析构函数,而如果用delete []sp,则调用全部20个析构函数。