当我们在进行指针操作时,我们需要确保指针指向的内存地址是有效的。如果我们将指针设置为 NULL 或者释放指针所指向的内存,那么这个指针就变得无效。这样做的好处是可以避免悬空指针(dangling pointer)的出现,悬空指针是指向已经被释放的内存地址的指针。
为了使删除的指针无效,我们可以使用以下方法:
int* ptr = new int;
delete ptr;
ptr = NULL;
#include<memory>
std::unique_ptr<int> ptr(new int);
// 当 ptr 离开作用域时,它会自动释放内存并将指针设置为 NULL
#include<vector>
std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
// 当 vec 离开作用域时,它会自动释放内存并将指针设置为 NULL
通过以上方法,我们可以确保删除的指针无效,从而避免内存泄漏和悬空指针的出现。
领取专属 10元无门槛券
手把手带您无忧上云