当前位置:首页 > 开发教程 > C语言 >

指针使用经验总结之悬垂指针

时间:2013-09-22 09:03 来源: 作者: 收藏

2345软件教程,为您打造全面的软件教程手册,无论是新奇小软件的操作还是专业软件的使用技巧,2345软件教程都会为您解疑释惑。

核心提示:如果将作用域A的变量地址赋给在作用域B的变量指针。当A中相应变量的生存周期结束后

如果将作用域A的变量地址赋给在作用域B的变量指针。当A中相应变量的生存周期结束后,会使B的指针出现“悬垂指针”的现象(悬垂指针指向曾经存放对象的内存,但该对象已经不再存在了。悬垂指针往往导致程序错误,而且很难检测出来。)如下代码:

#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成为悬垂指针。


C语言阅读排行

最新文章