今天程序部的同事代码优化,防止游戏崩溃。询问其改动内容说只是把几个地方的delete改成delete[],虽然我不是做开发的也还是自己网上查了查找到答案。记录一下,学习嘛,永无止尽!

   C++告诉我们在回收用 new 分配的单个对象的内存空间的时候用 delete,回收用 new[] 分配的一组对象的内存空间的时候用 delete[]。

   关于 new[] 和 delete[],其中又分为两种情况:(1) 为基本数据类型分配和回收空间;(2) 为自定义类型分配和回收空间。

   new[]和delete[]要成对,不然只用delete的话,只会析构掉数组里的第一个对象,比如p[0],p[1]之后的不会调用自己的析构函数。不过基本类型的对象没有析构函数,回收基本类型组成的数组空间用delete 和 delete[] 都是应该可以的。

   所以一个简单的使用原则就是:new 和 delete、new[] 和 delete[] 成对使用。