C++

内存管理

C:

int *p = (int*) malloc(sizeof(int)*10);  //分配10个int型的内存空间
free(p);  //释放内存

C++:

int *p = new int;  //分配1个int型的内存空间
delete p;  //释放内存

分配释放连续的数据:
int *p = new int[10];  //分配10个int型的内存空间
delete[] p;

C++变量释放内存

int *p=new int;  //**
if(NULL==p)
{
//内存分配失败
//异常处理
}
delete p;  //**
p=NULL;

C++数组释放内存

int *p=new int[10];  //**
if(NULL==p)
{
//内存分配失败
//异常处理
}
delete []p;  //**
p=NULL;

注意

malloc和new是在堆区分配内存的,必须手动释放,否则只能等到程序运行结束由操作系统回收。为了避免内存泄露,通常 new 和 delete、new[] 和 delete[] 操作符应该成对出现,并且不要和C语言中 malloc()、free() 一起混用。

原文地址:https://www.cnblogs.com/OFSHK/p/13547383.html