动态创建和销毁对象 new&&delete [C++Primer]

1.数组类型的变量有三个原则:数组的长度固定不变;

                                    编译的时候必须知道其 长度;

                                    数组只在定义它的块语句内存在;

2.动态分配数组三个优势:编译的时候不必知道其长度;

                              (通常)运行时才确定其长度;

                               动态分配的数组一直存在,直到程序显式释放它为止;

3.动态分配 数组时,只需要制定类型和数组长度,不必为数组对象命名,new表达式返回指向新分配数组的第一个元素的指针;只能通过地址间接访问对象。

4.动态分配数组的时候,如果数组元素具有类类型,将使用该类的默认构造函数实现初始化;如果数组元素是内置类型,则无初始化;

5.动态创建内置类型的const对象的数组的时候,必须为这个数组提供初始化,因为数组元素都是const对象,无法赋值;元素为类类型,则该类必须提供默认构造函数;

6.可以分配大小为0的动态数组;

7.动态分配的内存必须由程序员显式进行释放,否则内存将会耗尽;

8.delete [] pa;误写成delete pa;回收的时候缺少空方括号,会导致内存泄露,少释放了内存空间;

原文地址:https://www.cnblogs.com/cy568searchx/p/2988904.html