码迷,mamicode.com
首页 > 其他好文 > 详细

悬垂指针问题

时间:2015-04-03 14:46:42      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:

当指针被撤销时,实际上撤销的不是指针本身,而是指针所指对象,指针仍保存着原先所指向的地址。在撤销指针后,应将指针置为NULL,否则它就会变成悬垂指针。当另一新指针被动态分配时,之前的悬垂指针会自动指向新指针所指对象。

 1 #include <iostream>
 2 using namespace std;
 3 int main()
 4 {
 5   int i=3,j=5;
 6   int *ip0=new int;
 7   *ip0=i;
 8   cout<<*ip0<<" and "<<ip0<<endl;//输出3 and 0x0001
 9   delete ip0;
10   cout<<*ip0<<" and "<<ip0<<endl;//输出0 and 0x0001,ip0并未被删除,成为悬垂指针
11   int *ip1=new int;//在创建ip1的同时,编译器自动令ip1给ip0赋值
12   *ip1=j;
13   cout<<*ip0<<" and "<<ip0<<endl;//输出5 and 0x0001
14   delete ip1;
15   ip0=NULL;//此时ip0地址真正被置为0
16   ip1=NULL;//此时ip0地址真正被置为0
17   return 0;    
18 }

 

悬垂指针问题

标签:

原文地址:http://www.cnblogs.com/slgnesin/p/4389764.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!