迷途指针(又称为,悬浮指针或失控指针)
来源:互联网 发布:淘宝手机保修 编辑:程序博客网 时间:2024/06/10 23:17
编程中有一种很难发现的错误是迷途指针。迷途指针也叫悬浮指针(失控指针),是对一个指针进行delete操作后并没有把它设置为空时产生的。在C++中,delete一个指针仅仅是释放它所指向的内存,即把这块内存区标明为可用,而不会改变指针所指向的地址值。而后,你如果没有重新赋值就试图再次使用该指针,引起的结果是不可预料的。
根据前人的经验,在删除指针后小心不要再使用它。虽然这个指针仍然指向原来的内存区域,但是编译器已经将这块内存区域分配给了其他的数据。再次使用这个指针会导致你的程序崩溃。
以下面这段代码为例:
#include
typedef unsigned short int USHORT;
using namespace std;
void main()
{
}
输出结果为:
pInt指向的内存地址为:00395C98
pInt指向内存中存储的值为: 10
pLong指向的内存地址为:00395C98
pLong指向内存中存储的值为: 90000
pInt指向的内存地址为:00395C98
pInt指向内存中存储的值为: 20
请按任意键继续. . .
我们可以看到,尽管前面删除了pInt,但是它所指向的地址没有改变,仍然可以利用pInt改变内存中的值,如果这段内存被别的程序所使用,很有可能造成程序崩溃。正确的处理方式是,delete一个指针后,将该指针定义为空指针,pInt=0,尽管空指针也可能造成程序崩溃,但这种崩溃是可预料的崩溃,调试起来会方便很多。
- 迷途指针(又称为,悬浮指针或失控指针)
- 迷途指针(失控指针) 野指针
- C++基础---失控指针、迷途指针、野指针、悬浮指针及空指针
- C++之失控指针、迷途指针、野指针、悬浮指针及空指针[转]
- C++基础---失控指针、迷途指针、野指针、悬浮指针及空指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 迷途指针
- 关于野指针(迷途指针),空指针,通用指针
- C++ 野指针(迷途指针)
- C++空指针与野指针(迷途指针)
- 空指针与迷途指针
- java concurrent的理解
- Hibernate——(3)主键生成方式
- 中断系统基本原理
- C++ string总结(适合新手)
- 腾讯qq浏览器2014 v7.6.21433 官方版
- 迷途指针(又称为,悬浮指针或失控指针)
- openjudge DNA排序
- 正在卖号中,诚信互听,互补750,有意者私
- JAVA 文件的复制
- Linux 信号signal处理机制
- GDB调试精粹及使用实例
- [原创]各种技术网址收集
- c/c++学习过程中的知识点记录:学习笔记(一)
- Android Activity四种方式启动