【数据结构】悬空指针和野指针
【数据结构】悬空指针和野指针
- 一、悬空指针
- 二、野指针
- 三、小结
一、悬空指针
在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。
三、小结
- 悬空指针为指向非法内存的指针;野指针为未初始化的指针;空指针就是值为0(NULL)的指针。它们是三个不同的概念。
- 使用条件语句可以判断出一个指针是否为空指针,但不能辨别出悬空指针和野指针。
- 悬空指针和野指针,有时统称为悬空指针。
【数据结构】悬空指针和野指针相关推荐
- “悬空指针”和“野指针”究竟是什么意思?有什么区别
提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再熬述了,今天我们想跟大家讲的是指针中的两个特有名词:"悬空指针"和"野指针&qu ...
- C语言“悬空指针”和“野指针”究竟是什么意思?
各位,提起C语言我们很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大家讲的是指针中的两个特有名词:"悬空指针"和"野指针&quo ...
- C语言中的“悬空指针”和“野指针”是什么意思?
提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大家讲的是指针中的两个特有名词:"悬空指针"和"野指针&qu ...
- 什么是“NULL指针”,“悬空指针”和“野指针”?
1,什么是NULL指针? NULL用于指示指针未指向有效位置.理想情况下,如果在声明时不知道指针的值,则应将指针初始化为NULL.另外,当由它指向的内存在程序中间被释放时,我们应该使指针为NULL. ...
- “悬空指针”和“野指针”究竟是什么意思?
关注.星标公众号,不错过精彩内容 素材来源:网络 编辑整理:strongerHuang 提起C语言大部分开发者很自然就会想到指针二字,没错,作为C的核心和灵魂,它的地位咱们就不再赘述了,今天我们想跟大 ...
- 【C 语言】指针数据类型 ( 野指针 | 避免野指针推荐方案 )
文章目录 一.野指针 二.避免野指针推荐方案 一.野指针 参考 [C 语言]内存管理 ( 动态内存分配 | 栈 | 堆 | 静态存储区 | 内存布局 | 野指针 ) 四. 野指针 ( 程序BUG根源 ...
- 指针辨析:悬垂指针、哑指针、野指针、智能指针
原文地址:https://blog.csdn.net/zhaojinjia/article/details/8770989 悬垂指针: 1:提出的原因: 请看下面的代码片段: int *p=NULL; ...
- 对指针的详细认识(一)—— 指针概念+指针类型+野指针+指针运算+二级指针
文章目录 指针是什么? 指针的定义 指针的大小 指针类型 指针有哪些类型? 指针类型有什么意义? 野指针 野指针的成因 如何避免野指针 指针运算 指针+-整数 指针-指针 指针的关系运算 二级指针 指 ...
- 指针、野指针、指针常量、常量指针
指针 概念 指针是什么? 在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值.由于通过地址能找到所需的变量单元,可以说,地址指向该变量 ...
最新文章
- vmware克隆centos修改linux mac地址
- webToImage (网页转图片)模块试用分享
- 用到的oracle sql语句-001
- 想拿下互联网大厂OFFER,都需要准备什么?
- java new expression,JAVA公式解析示例
- 【飞秋怎么用】企业应用
- 企业到底需要什么样的飞鸽传书
- Hbuilder 左侧项目栏文件打开方式(单击?双击?) - 设置篇
- JSR-330 依赖注入
- java的字符串复制_我应该如何复制Java中的字符串?
- Linux常用解压文件
- 全自动降噪插件-Acon Digital Extract:Dialogue 1.1.2 WiN-MAC
- 拉普拉斯变换和Z变换表
- linux操作系统adsl 上网设置,Linux操作系统上ADSL拨号上网的方法详解
- 给初学者的RxJava2.0教程(八)
- ffmpeg代码实现往视频文件里面叠加文字
- datagridview 显示红色叉_显示器促销日常数码店招首页装修PSD模板分层psd素材
- Jquery(四)对象遍历及特效
- 【YOLO系列】YOLOv3
- java 粒度_Java函数保留粒度
热门文章
- Win10系统Administrator忘记开机密码怎么办?
- 土壤基因组dna提取试剂盒
- 如何高效学习的一点思考
- Buct oj 1019
- 人工智能的嘴巴——语音合成(Text to Speech | TTS)
- 2021中国薪酬指南:全球半数雇主计划加薪并恢复至正常招聘水平
- QGIS编译---QGIS2.14.16 + Qt4.8.6 + VS2010 ---32位版本
- 小学生C++趣味编程 上机作业 每日一练 第1单元 顺序结构
- mysql8.0.13解压版安装密码设置_mysql8.0.13解压版安装配置方法图文教程
- xmanager登陆linux黑屏,使用xmanager工具登陆linux服务器时黑屏问题