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() 一起混用。