1.定义
指向非法的内存地址指针叫作野指针(Wild Pointer),也叫悬挂指针(Dangling Pointer),意为无法正常使用的指针。
2.出现野指针的常见情形
2.1使用未初始化的指针
出现野指针最典型的情形就是在定义指针变量之后没有对它进行初始化,如下面的程序。
#include <iostream>
usingnamespacestd;
intmain()
{
int* p;
cout<<*p<<endl; //编译通过,运行时出错
}
2.2指针所指的对象已经消亡
指针指向某个对象之后,当这个对象的生命周期已经结束,对象已经消亡后,仍使用指针访问该对象,将出现运行时错误。考察如下程序。
#include <iostream>
usingnamespacestd;
int* retAddr()
{
intnum=10;
return#
}
intmain()
{
int* p=NULL;
p=retAddr();
cout&l