C++ new 和 delete的用法


new和delete可以有效地、直接的进行动态内存的分配和释放。
 
运算符new返回指定类型的一个指针,如果分配失败(如没有足够的内存空间)时则返回0。
如:
  double *p;
  p=new double;
  *p=30.4;// 将值存放在开辟的单元中
  系统自动根据double类型的空间大小开辟内存单元,并将地址放在指针p中。当然,也可在开辟内存单元时对单元里的值进行初始化。上述代码等价于:
  double *p;
  p=new double(30.4);
运算符delete是释放new请求道的内存。 delete p
将p指针的内存单元释放,指针变量p仍然有效,它可以重新指向另一个内存单元。
 
new也可以为数组分配内存,当释放时,也可以告诉delete数组有多少个。
如:
  int *p;
  p=new int[10];
  delete [10]p;//告诉delete数组有多少个元素,或delete []p;

相关内容