【4】学习C++之内存管理
单个内存申请及释放:
int *p = new int; if(p == NULL) { //内存分配失败 //异常处理 } delete p; p = NULL;
内存块的申请及释放:
int *p = new int[100]; if(p == NULL) { //内存分配失败 //异常处理 } delete []p; p = NULL;
注意:
- 在C语言中,申请内存及释放内存使用的是malloc和free,这种方式在C++中也可以使用,但是值得注意的是,使用malloc申请的内存只能使用free来释放,使用new申请的内存只能使用delete来释放,不能混搭。
- 申请内存后需要判断内存是否申请成功,释放内存后需要设置空指针,避免二次释放。