【数据结构】悬空指针和野指针

  • 一、悬空指针
  • 二、野指针
  • 三、小结

一、悬空指针

  在C/C++中,一个指针指向的对象被删除后,该指针变量就变为悬空指针,即指向非法内存,如果所释放的空间被再分配而继续访问该指针所指对象,就会发生“悬挂访问”,可想而知,这种访问会引发恶劣后果。
  例如,下列程序段执行的结果使得指针变量p悬空。

int main(){int num=1;int *p,*q;p=(int*)malloc(sizeof(int));*p=num;cout<<"正常指针:"<<*p<<endl;q=p;free(q);cout<<"悬空指针:"<<*p<<endl;return 0;
}

第一次运行:

第二次运行:

二、野指针

  即没有进行初始化的指针变量。指针变量被创建时,其缺省值是随机的,并不会自动变成NULL。

int main(){int *p;cout<<"野指针p:"<<p<<endl;return 0;
}

运行结果:

  因此,在创建指针变量时,需要令其指向合法内存,或者设为NULL。

三、小结

  1. 悬空指针为指向非法内存的指针;野指针为未初始化的指针;空指针就是值为0(NULL)的指针。它们是三个不同的概念。
  2. 使用条件语句可以判断出一个指针是否为空指针,但不能辨别出悬空指针和野指针。
  3. 悬空指针和野指针,有时统称为悬空指针。

【数据结构】悬空指针和野指针相关推荐

  1. “悬空指针”和“野指针”究竟是什么意思?有什么区别

    提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再熬述了,今天我们想跟大家讲的是指针中的两个特有名词:"悬空指针"和"野指针&qu ...

  2. C语言“悬空指针”和“野指针”究竟是什么意思?

    各位,提起C语言我们很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大家讲的是指针中的两个特有名词:"悬空指针"和"野指针&quo ...

  3. C语言中的“悬空指针”和“野指针”是什么意思?

    提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大家讲的是指针中的两个特有名词:"悬空指针"和"野指针&qu ...

  4. 什么是“NULL指针”,“悬空指针”和“野指针”?

    1,什么是NULL指针? NULL用于指示指针未指向有效位置.理想情况下,如果在声明时不知道指针的值,则应将指针初始化为NULL.另外,当由它指向的内存在程序中间被释放时,我们应该使指针为NULL. ...

  5. “悬空指针”和“野指针”究竟是什么意思?

    关注.星标公众号,不错过精彩内容 素材来源:网络 编辑整理:strongerHuang 提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大 ...

  6. 【C 语言】指针数据类型 ( 野指针 | 避免野指针推荐方案 )

    文章目录 一.野指针 二.避免野指针推荐方案 一.野指针 参考 [C 语言]内存管理 ( 动态内存分配 | 栈 | 堆 | 静态存储区 | 内存布局 | 野指针 ) 四. 野指针 ( 程序BUG根源 ...

  7. 指针辨析:悬垂指针、哑指针、野指针、智能指针

    原文地址:https://blog.csdn.net/zhaojinjia/article/details/8770989 悬垂指针: 1:提出的原因: 请看下面的代码片段: int *p=NULL; ...

  8. 对指针的详细认识(一)—— 指针概念+指针类型+野指针+指针运算+二级指针

    文章目录 指针是什么? 指针的定义 指针的大小 指针类型 指针有哪些类型? 指针类型有什么意义? 野指针 野指针的成因 如何避免野指针 指针运算 指针+-整数 指针-指针 指针的关系运算 二级指针 指 ...

  9. 指针、野指针、指针常量、常量指针

    指针 概念 指针是什么? 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值.由于通过地址能找到所需的变量单元,可以说,地址指向该变量 ...

最新文章

  1. vmware克隆centos修改linux mac地址
  2. webToImage (网页转图片)模块试用分享
  3. 用到的oracle sql语句-001
  4. 想拿下互联网大厂OFFER,都需要准备什么?
  5. java new expression,JAVA公式解析示例
  6. 【飞秋怎么用】企业应用
  7. 企业到底需要什么样的飞鸽传书
  8. Hbuilder 左侧项目栏文件打开方式(单击?双击?) - 设置篇
  9. JSR-330 依赖注入
  10. java的字符串复制_我应该如何复制Java中的字符串?
  11. Linux常用解压文件
  12. 全自动降噪插件-Acon Digital Extract:Dialogue 1.1.2 WiN-MAC
  13. 拉普拉斯变换和Z变换表
  14. linux操作系统adsl 上网设置,Linux操作系统上ADSL拨号上网的方法详解
  15. 给初学者的RxJava2.0教程(八)
  16. ffmpeg代码实现往视频文件里面叠加文字
  17. datagridview 显示红色叉_显示器促销日常数码店招首页装修PSD模板分层psd素材
  18. Jquery(四)对象遍历及特效
  19. 【YOLO系列】YOLOv3
  20. java 粒度_Java函数保留粒度

热门文章

  1. Win10系统Administrator忘记开机密码怎么办?
  2. 土壤基因组dna提取试剂盒
  3. 如何高效学习的一点思考
  4. Buct oj 1019
  5. 人工智能的嘴巴——语音合成(Text to Speech | TTS)
  6. 2021中国薪酬指南:全球半数雇主计划加薪并恢复至正常招聘水平
  7. QGIS编译---QGIS2.14.16 + Qt4.8.6 + VS2010 ---32位版本
  8. 小学生C++趣味编程 上机作业 每日一练 第1单元 顺序结构
  9. mysql8.0.13解压版安装密码设置_mysql8.0.13解压版安装配置方法图文教程
  10. xmanager登陆linux黑屏,使用xmanager工具登陆linux服务器时黑屏问题