如果一个地方指针既不为空,也没有被设置为指向一个已知的对象,则这样的指针称为悬挂指针。在程序里面是很危险的事
,代码如下:
#include "stdafx.h" #include "iostream" using namespace std; //typedef string t; void f(int *p); int main() { //int a = 10; int *i; //i = &a; f(i); cout<<*i; return 0; } void f(int *p){ cout<<p; if(p!=0) *p = 100; }
当控制函数执行到f()中时候,f()不能判断指针的合法性,将会产生很严重的错误。(但是编译通过)
最好的解决方法是指针声明时候,同时赋予其指向一个对象 即去掉注释部分