空指针和迷途指针的区别

转载 2008年10月03日 14:49:00
 

解释代码:

#include <iostream.h>
int main(){
 int *pInt = new int;
 *pInt=10;
 cout<<*pInt<<endl;
 delete pInt;
 pInt=0;

 *pInt=20;    // oh no, this was deleled.
 cout<<*pInt<<endl;
 return 0;
}
//Compile this program successfully,but when running it, collapse.

迷途指针也叫悬浮指针,失控指针,是对一个指针delete后---这样会释放它所指向的内存---并没有把它设置为空时产生的.而后,如果你没有赋值就试图再次使用该指针,引起的结果是不可预料的.

当delete一个指针时,实际上仅是让编译器释放内存,但指针本身依然存在。这时它就是一个迷途指针。

当使用以下语句时,可以把迷途指针改为空指针:

MyPtr=0;

通常,如果在删除一个指针后又把它删除了一次,程序就会变得非常不稳定,任何情况都有可能发生。但是如果你只是删除了一个空指针,则什么事都不会发生,这样做非常安全。

使用迷途指针或空指针(如MyPtr=0)是非法的,而且有可能造成程序崩溃。如果指针是空指针,尽管同样是崩溃,但它同迷途指针造成的崩溃相比是一种可预料的崩溃。这样调试起来会方便的多。

空指针和迷途指针的区别

解释代码:#include int main(){ int *pInt = new int; *pInt=10; cout delete pInt; pInt=0; *pInt=20;    // o...
  • Elegant_Design
  • Elegant_Design
  • 2007年09月04日 16:09
  • 2342

C++之失控指针、迷途指针、野指针、悬浮指针及空指针[转]

原文:C++基础—失控指针、迷途指针、野指针、悬浮指针及空指针指针就是用来保存内存地址的变量,因此定义了一个指针后就要给它赋一个地址,或初始化为空指针。使用delete释放掉指针指向的内存后,不再使用...
  • u011475134
  • u011475134
  • 2017年08月06日 23:45
  • 181

C++基础---失控指针、迷途指针、野指针、悬浮指针及空指针

1. 失控指针、迷途指针、野指针、悬浮指针及空指针 1.1 失控指针 失控指针:也称迷途指针、野指针、悬浮指针。 失控指针:指的是不指向任何合法的对象的指针,可以指向任何地址,并且对该地址的数值进...
  • cainv89
  • cainv89
  • 2015年08月16日 12:02
  • 1189

空指针与迷途指针

当delete一个指针的时候,实际上仅是让编译器释放内存,但是指针本身依然存在。这是这个指针就是迷途指针了。当使用p=0时,此时指针就变成空指针了。使用迷途指针和空指针都是非法的,而且有可能造成程序的...
  • DSB2510
  • DSB2510
  • 2010年06月07日 16:06
  • 1620

空指针和迷途指针的区别

 解释代码:#include int main(){ int *pInt = new int; *pInt=10; cout delete pInt; pInt=0; *pInt=20;    // ...
  • jiang1013nan
  • jiang1013nan
  • 2008年10月03日 14:49
  • 1074

空指针和迷途指针的区别

当delete一个指针时,实际上仅是让编译器释放内存,但指针本身依然存在。这时它就是一个迷途指针。当使用以下语句时,可以把迷途指针改为空指针:MyPtr=0;通常,如果在删除一个指针后又把它删除了一次...
  • bendanxiaoning_1985
  • bendanxiaoning_1985
  • 2007年07月25日 09:30
  • 204

迷途指针和空指针,malloc /new区别

空指针和迷途指针的区别          当delete一个指针的时候,实际上仅是让编译器释放内存,但指针本身依然存在。这时它就是一个迷途指针。...
  • wangfengfan1
  • wangfengfan1
  • 2015年07月24日 18:29
  • 285

迷途指针

 在计算机编程领域中,迷途指针,或称悬空指针、野指针,指的是不指向任何合法的对象的指针。 当所指向的对象被释放或者收回,但是对该指针没有作任何的修改,以至于该指针仍旧指向已经回收的内存地址,此...
  • xumingwei12345
  • xumingwei12345
  • 2016年07月22日 10:32
  • 189

迷途指针(失控指针) 野指针

编程中有一种很难发现的错误是迷途指针。迷途指针也叫悬浮指针(失控指针),是对一个指针进行delete操作后并没有把它设置为空时产生的。在C++中,delete一个指针仅仅是释放它所指向的内存,即把这块...
  • rongwenbin
  • rongwenbin
  • 2014年01月07日 15:20
  • 549

空指针和迷途指针

当delete一个指针的时候,实际上仅是让编译器释放内存,但是指针本身依然存在。这时它就是一个迷途指针。 当使用一下语句时,可以把迷途指针改为空指针: MyPtr=0; 使用迷途指针或空指针是非...
  • WHEgqing
  • WHEgqing
  • 2015年09月15日 00:13
  • 256
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:空指针和迷途指针的区别
举报原因:
原因补充:

(最多只允许输入30个字)