📅  最后修改于: 2023-12-03 15:12:28.289000             🧑  作者: Mango
在C++中,动态分配内存是一种非常常见的操作。但是,如果我们不适当地释放内存,程序可能会出现内存泄漏,这会导致程序变慢、崩溃等问题。因此,我们需要知道如何正确地释放指针。
C++中,使用new运算符动态分配内存后,需要使用delete运算符释放内存。delete运算符接受一个指针作为参数,并释放此指针指向的内存。
int* ptr = new int; // 分配一个整数的内存
*ptr = 5; // 给指针赋值
delete ptr; // 释放指针指向的内存
如果我们使用new运算符为数组动态分配内存,则需要使用delete[]运算符释放内存。delete[]运算符接受一个数组指针(即指向第一个数组元素的指针)作为参数,并释放该指针指向的整个数组。
int* arr = new int[5]; // 分配一个大小为5的整数数组
arr[0] = 1; // 给数组元素赋值
delete[] arr; // 释放指针指向的整个数组
在释放指针后,为了防止程序出现无法预知的错误,我们应该将指针置为null。
int* ptr = new int;
// 使用指针
delete ptr;
ptr = nullptr; // 将指针置为null
以上就是C++中释放指针的方法。为了避免内存泄漏和其他错误,请务必记得在使用完指针后及时释放它们,并将其置为null。