new与delete
当我们使用一条new表达式时:
string *sp = new string("a value"); //分配并初始化一个string对象
string *arr = new string[10]; //分配10个默认初始化的string对象
我们要在类型名之后跟上一对方括号,在其中指明要分配对象的数目(方括号中的大小必须是整形,但不必是常量)
int *pa = new int[get_size()]; //pa指向第一个int
分配的内存其实并不是一个数组类型,故不能使用范围for循环,也不能调用begin,end。
分配一个二维数组
int (*p)[b] = new int[a][b];
释放动态数组
我们使用delete释放动态数组
delete p; //p指向一个动态分配的对象或者为空(一维数组)
delete [] p; //p指向一个动态分配的数组或者为空(二维数组)