首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使删除的指针无效?

当我们在进行指针操作时,我们需要确保指针指向的内存地址是有效的。如果我们将指针设置为 NULL 或者释放指针所指向的内存,那么这个指针就变得无效。这样做的好处是可以避免悬空指针(dangling pointer)的出现,悬空指针是指向已经被释放的内存地址的指针。

为了使删除的指针无效,我们可以使用以下方法:

  1. 将指针设置为 NULL:
代码语言:c++
复制
int* ptr = new int;
delete ptr;
ptr = NULL;
  1. 使用智能指针(C++11 及以上版本):
代码语言:c++
复制
#include<memory>

std::unique_ptr<int> ptr(new int);
// 当 ptr 离开作用域时,它会自动释放内存并将指针设置为 NULL
  1. 使用容器类(如 std::vector):
代码语言:c++
复制
#include<vector>

std::vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
// 当 vec 离开作用域时,它会自动释放内存并将指针设置为 NULL

通过以上方法,我们可以确保删除的指针无效,从而避免内存泄漏和悬空指针的出现。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券