《C++ Primer Plus》第五版 P94~P98
使用new来创建动态数组
在编译时给数组分配内存被称为静态联编static binding,意味着数组是在编译时加入到程序中的。但使用new时,如果在运行阶段需要数组,则创建它;如果不需要,则不创建。可以在程序运行时选择数组的长度,称为动态联编dynamic binding,意味着数组是在程序运行时创建的。这种数组称为动态数组。
注意:使用静态联编时必须在编写程序时指定数组的长度;使用动态联编时,程序将在运行时确定数组的长度。
int *psome=new int [10];new操作符返回第一个元素的地址。
delete [] psome;
关于new和delete规则
1) 不要使用delete来释放不是new分配的内存
2) 不要使用delete释放同一个内存块2次
3) 如果使用new[]来为数组分配内存,则应使用delete[]来释放
4) 如果使用new为一个实体分配内存,则应使用delete来释放
5) 对空值指针应用delete是安全的。