C语言中使用库函数malloc和free来分配与撤销内存空间
C++中使用运算符new和delete来分配与撤销内存空间
C++为了兼容保留了函数,但运算符与函数执行效率高。尽量不使用malloc函数
new和delete要配套使用
new类型【初值】
new int; //开辟一个存放整数的存储空间,返回一个指向该存储空间的地址(指针)
new int(100); //开辟一个存放整数的空间,并指定该整数的初值为100,返回指针
new char[10]; //开辟一个存放字符数组(包括10个元素),并返回首元素的地址
new int [5][4]; // 开辟一个存放二维数组的空间,并返回首地址
float *p=new float(3.14159); //开辟一个存放单精度的空间,指定初值为3.14159,
//并返回该空间的地址赋给指针变量p
delete[]指针变量
delete p;
如果new的返回值赋给了指针变量pt;则使用delete[]pt;
申请内存分配时,需要判断是否成功,释放内存需要设空指针
申请内存分配判断:
int *p=new int(1000)
if(NULL=p)
{
//内存分配失败
}
内存释放:
int *p=new int;//int *p=new int[1000]
if(NULL=p)
{
//内存分配失败
//异常处理
}
delete p;//delete []p;
p=NULL;