C++内存的动态分配和释放
C++提供的new和delete操作符可以实现内存的动态分配和释放,同时也可以使用C的函数malloc与free实现。
1.new
采用new动态分配内存形式如下:
int *iptr1, *iptr2;
iptr1 = new int;
iptr2 = new int(30);
如果内存空间分配失败,new将返回0或NULL,两者一样,NULL是定义在iostream中的常量,实际就是0,采用如下方式检验内存分配是否失败
if (iptr1 == NULL)
{
cout <<"内存分配失败!" <<endl;
exit(0);
2.delete
delete用来释放new动态分配的内存空间,
delete a;
释放a指向的单个内存空间。
delete []a;
释放a指向的数组空间。