在c++中,释放new分配的内存空间时,使用delete和delete[]是不是有区别?
①如果new得是一个变量,那么使用delete就可以。
但是如果new得是一个数组,使用delete的话只能释放数组的第一个元素占用的内存,这会造成严重的内存泄漏的。
② 使用new申请的数组应该使用delete[]来销毁它。
③new分配的内存不delete会泄漏。
④由new分配的内存空间是连续的。
⑤如果当时内存无足够的空间可分配,则new运算符返回的是null。
⑥ 由new运算符分配的内存空间,当函数之行结束时系统会自动收回(错误)必须delete才能释放空间。
⑦对于程序中的静态数组占用的存储空间不能使用delete释放,需要用delete[]来释放。(同第二条)