不断更新:
1.悬垂指针
如果将作用域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;
}
输出为:
#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成为悬垂指针。