在C++中,“野指针”(dangling pointer)指的是指向已释放或无效内存的指针。使用野指针可能导致程序崩溃或产生未定义行为。避免野指针的关键在于确保指针始终指向有效内存。下面是一些避免野指针的方法和最佳实践:
1、释放内存后置空指针
当释放掉分配的动态内存后,将指针设置为nullptr,防止后续意外再次使用该指针。
代码示例:
#include <iostream>
using namespace std;
int main()
{
int *ptr = new int(10);//动态分配内存
/*下面代码用来避免使用野指针指针*/
if(ptr != nullptr)
{
cout<<"value:"<<*ptr<<endl;
}
delete ptr;//释放内存
ptr = nullptr;//置空指针
return 0;
}
运行结果:
2、使用智能指针(Smart Pointers)
使用智能指针(如 std::unique_ptr、std::shared_ptr 和 std::weak_ptr)可以自动管理内存,避免野指针的问题。</