都是是指向无效内存区域(这里的无效指的是"不安全不可控")的指针,访问行为将会导致未定义行为。

野指针:指的是没有被初始化过的指针。

int main(void) { int * p;std::cout<<*p<<std::endl;return 0;
}

因此,为了防止出错,对于指针初始化时都是赋值为 nullptr,这样在使用时编译器就会直接报错,产生非法内存访问。

悬空指针:指针最初指向的内存已经被释放了的一种指针。

int main(void) { int * p = nullptr;int* p2 = new int; p = p2;delete p2;
}

此时 p和p2就是悬空指针,指向的内存已经被释放。继续使用这两个指针,行为不可预料。需要设置为p=p2=nullptr。此时再使用,编译器会直接保错。

避免野指针比较简单,但悬空指针比较麻烦。c++引入了智能指针,C++智能指针的本质就是避免悬空指针的产生。

产生原因及解决办法:

野指针:指针变量未及时初始化 => 定义指针变量及时初始化,要么置空。

悬空指针:指针free或delete之后没有及时置空 => 释放操作后立即置空。

C++ 野指针和悬空指针相关推荐

  1. C语言中“野指针”、“悬空指针”是什么?

    目录 1."野指针"(wild pointer) 2."悬空指针"(dangling pointer) 1."野指针"(wild point ...

  2. 野指针和悬空指针的形成原因和如何避免!

    野指针和悬空指针的形成原因和如何避免! 一:野指针 1.定义:野指针是那些未初始化的指针. 2.原因 (1)指针变量未初始化:任何指针变量刚被创建时不会自动成为NULL指针,所以,指针变量在创建的同时 ...

  3. C/Cpp / 野指针和悬空指针

    一.定义 野指针(Wild Pointer):没有初始化的指针. 悬空指针(Dangling Pointer):指向的内存已经释放. 二.危害 由于指向的是不安全不可控的区域,任何情况都有可能发生,比 ...

  4. 野指针 空指针 悬空指针 智能指针

    C语言中"野指针"."悬空指针"是什么? C语言中"野指针"."悬空指针"是什么?_不脱发的程序猿的博客-CSDN博客_ ...

  5. C/C++编程笔记:详解三种指针(悬空指针、空指针和野指针)

    悬空指针 指向已删除(或释放)的内存位置的指针称为悬空指针.指针用作悬空指针有三种不同的方式 ①内存分配: ②函数调用: 如果x是静态变量,则不会出现问题(或p不会悬空). 输出:5 变量超出范围 无 ...

  6. C++之深入解析野指针和悬空指针

    一.野指针 ① 什么是野指针? 野指针指向一个已删除的对象或未申请访问受限内存区域的指针. 与空指针不同,野指针无法通过简单地判断是否为NULL避免,而只能通过养成良好的编程习惯来尽力减少,对野指针进 ...

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

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

  8. 空指针、悬空指针、野指针

    文章目录 前言 一.指针? 二.指针的应用场景 三. 空指针 四. 悬空指针 五. 野指针 正确用法 总结 前言 相信很多小伙伴对指针的使用都有一定的了解了.但更多的人可能对指针又爱又恨.这次我们谈点 ...

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

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

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

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

最新文章

  1. 2022-2028年中国辉石行业市场全景调查及发展前景分析报告
  2. 实训C++语言设计——Date日期系统实现
  3. 2017南宁现场赛E 存档
  4. Unity3D学习笔记之二资源导入以及工程管理
  5. git checkout 和 git reset
  6. 标准WPS框架下的空间信息处理服务部署方法
  7. 4怎么打开项目_苹果电脑怎么把文件复制到u盘
  8. 基于springboot的物资管理系统
  9. FPGA学习经验分享——入门篇
  10. python实现触摸精灵功能_FRIDA脚本系列(三)超神篇:百度AI“调教”抖音AI
  11. 树莓派摄像头远程和本地观看视频
  12. P2627 [USACO11OPEN]Mowing the Lawn G 题解(单调队列+dp)
  13. utf8和gbk的区别
  14. Hypermesh二次开发系列003
  15. 内涵一下我参加过的那些竞赛。
  16. haproxy frontend 和backend
  17. 峰会•沙龙•招聘 | 记零数科技多线并进的一天
  18. VMware软件虚拟机不能全屏
  19. DBS3900组网方式学习
  20. deform服务器位置,Deform V11 自动多工步分析(MO)设置详解-工艺成型及仿真

热门文章

  1. python身份证号码共18位_Python实现身份证号码解析
  2. 【视线追踪】视线追踪的性能评估框架 及 基础知识
  3. nginx启用reuseport
  4. 微信公众平台如何审核
  5. react native使用echarts图表
  6. 利用VBA向Word中批量添加图片以及整理成Excel数据的图片名
  7. 小米手机切换应用--完美实现步骤
  8. 数学小故事之 被柯西坑了的两个天才数学家——阿贝尔和伽罗瓦
  9. 一文了解plc编程、电脑编程、手机APP编程、组态编程、云编程(上)
  10. 高德 android 百度转高德,记一次百度和高德经纬度互转(不是你想的那样)