c++中delete用法
时间: 2023-07-08 20:21:11 浏览: 109
浅析c++中new和delete的用法
5星 · 资源好评率100%
在C++中,`delete`是用于释放动态分配内存的运算符。当您使用`new`运算符在堆上分配内存时,您需要使用`delete`运算符来释放该内存,以便将其返回给系统以供其他程序使用。以下是一些有关`delete`运算符的用法和注意事项:
1. 释放单个对象的内存:
```c++
// 分配内存
int* p = new int;
// 使用内存
*p = 10;
// 释放内存
delete p;
```
2. 释放数组对象的内存:
```c++
// 分配内存
int* arr = new int[5];
// 使用内存
for (int i = 0; i < 5; i++) {
arr[i] = i;
}
// 释放内存
delete[] arr;
```
注意:释放数组对象的内存时,需要在`delete`后面加上`[]`符号。
3. 在使用`delete`运算符释放内存时,必须确保指针指向的内存是动态分配的。如果指针指向的内存是静态分配的或者已经被释放,则会导致未定义的行为。
4. 在释放内存后,必须将指针设置为`nullptr`,以避免悬空指针的出现。
```c++
int* p = new int;
// ...
delete p;
p = nullptr;
```
希望这能解决您的问题。
阅读全文