指向曾经存在的对象,但该对象已经不再存在了,此类指针称为悬垂指针。结果未定义,往往导致程序错误,而且难以检测。
#include<iostream> #include <windows.h> using namespace std; int *p=NULL; void fun() { int i=10; p=&i; } void main() { fun(); cout<<"*p= "<<*p<<endl; Sleep(1000); cout<<“一秒钟后,fun()中的i变量的存储空间被释放,p所指对象的值为:"<<endl<<"*p= "<<*p<<endl; }
输出为:
*p= 10
一秒钟后,fun()中的i变量的存储空间被释放,p所指对象的值为:
*p= 1245056
Press any key to continue
可见,fun()运行完一秒钟后,p成为悬垂指针。