new和delete是C++中用于申请/释放空间的函数,对应于C语言中的malloc和free。
实例:
//普通变量
int *p = new int;
delete p;
//数组
int *p = new int[10];
delete [] p;
可以在申请空间时对变量进行初始化:
int *p = new int(1); //*p = 1
int *p = new int(); //*p = 0
对于提供了默认构造函数的类类型(如string),没必要对其对象进行值初始化。
另外需要注意的是下面这个语句:
char *p = new char[0];
该句语法是正确的,用new动态创建长度为0的数组时,new返回有效的非零指针,该指针与new返回的其他指针不同,不能进行解引用操作,只能用于比较运算。