在C++中,delete
关键字用于释放动态分配的内存
new
关键字为指针分配内存。例如,为一个整数分配内存:int* ptr = new int;
delete
关键字释放指针所指向的内存。确保在释放内存之前不要访问该内存,因为这可能导致未定义的行为。delete ptr;
nullptr
以避免悬空指针。悬空指针是指向已释放内存的指针。ptr = nullptr;
注意:在释放指针所指向的内存后,不要再次使用delete
释放相同的内存,因为这会导致未定义的行为。
示例代码:
#include <iostream>
int main() {
int* ptr = new int;
*ptr = 42;
std::cout << "Value of ptr: " << *ptr << std::endl;
delete ptr;
ptr = nullptr;
// 避免再次使用已释放的内存
if (ptr == nullptr) {
std::cout << "Memory has been released." << std::endl;
}
return 0;
}