【4】学习C++之内存管理

时间:2023-03-08 16:23:43

单个内存申请及释放:

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

内存块的申请及释放:

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

注意:

  1. 在C语言中,申请内存及释放内存使用的是malloc和free,这种方式在C++中也可以使用,但是值得注意的是,使用malloc申请的内存只能使用free来释放,使用new申请的内存只能使用delete来释放,不能混搭。
  2. 申请内存后需要判断内存是否申请成功,释放内存后需要设置空指针,避免二次释放。