在 C++ 中,delete
用于释放由 new
动态分配的内存。它接受一个指针作为参数,并释放该指针指向的内存。
// 动态分配内存
int* ptr = new int;
// 使用内存
// 释放内存
delete ptr;
在使用 delete
之前,必须先使用 new
进行内存的动态分配。delete
会调用对象的析构函数来清理对象的资源,并释放内存空间。
如果动态分配的内存是一个数组,应使用 delete[]
来释放内存,而不是使用 delete
。
// 动态分配数组
int* arr = new int[5];
// 使用数组
// 释放数组内存
delete[] arr;
需要注意的是,使用 delete
或 delete[]
释放内存后,指针将成为悬空指针,使用该指针将导致未定义的行为。为了避免悬空指针的出现,可以将指针设置为 nullptr
。
int* ptr = new int;
// 使用内存
delete ptr;
// 将指针设置为 nullptr
ptr = nullptr;