江牧律师
首页
往期整理
  •   历史归档
  •   文章分类
  •   文章标签
关于我
江牧
文章
10
分类
2
标签
6
首页
往期整理
历史归档
文章分类
文章标签
关于我
技术学习
解引用“指向空间已被释放的指针”,会得到怎样的值?
发布于: 2024-9-7
最后更新: 2024-10-9
次查看
C语言
知识点
type
status
date
slug
summary
tags
category
icon
password

📝 主旨内容

1.什么是野指针

概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确规划的)

野指针的成因

  1. 指针未初始化
    1. 指针越界访问
      1. 指针指向的空间释放

        2.对野指针,解引用“已被释放的指向空间”,会得到怎样的值?

        我们看下野指针成因的最后一段示例代码
        但我们会发现,哪怕a已被释放,当printf(”%d\n”, *p)的时候,输出居然仍是10。
        但我们会发现,哪怕a已被释放,当printf(”%d\n”, *p)的时候,输出居然仍是10。
        notion image
        • 我们可以这样理解: 变量未销毁时,只有自己能够修改,但是销毁之后,计算机也有了修改的权力,每一个语句过后,计算机都有可能修改那个位置的值,导致值发生变化。因而当野指针仍沿着原地址访问时,该值是不可预料的。
        但以上我们只解释了为什么野指针指向的值会发生改变,但改变的值会是多少?这个问题在我学完函数栈帧后会进一步来进行解答。
        • 作者:江牧
        • 链接:https://lawyerjiang.top/article/key/c/5
        • 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
        相关文章
        document.write()、textContent、innerText 与innerHTML的区别
        计算输入的数字在二进制下包含1的个数
        序列中删除指定数字
        C语言中将数字0~9与对应字符相互转换
        C/C++不能在子函数中求主函数中的数组长度
        快速理解C语言指针和数组的关系
        计算输入的数字在二进制下包含1的个数序列中删除指定数字
        Loading...
        目录
        0%
        📝 主旨内容1.什么是野指针野指针的成因2.对野指针,解引用“已被释放的指向空间”,会得到怎样的值?
        江牧
        江牧
        无限进步!
        文章
        10
        分类
        2
        标签
        6
        最新发布
        记一次个人服务器的搭建过程
        记一次个人服务器的搭建过程
        2025-4-28
        document.write()、textContent、innerText 与innerHTML的区别
        document.write()、textContent、innerText 与innerHTML的区别
        2024-10-9
        起点
        起点
        2024-10-9
        解引用“指向空间已被释放的指针”,会得到怎样的值?
        解引用“指向空间已被释放的指针”,会得到怎样的值?
        2024-10-9
        C语言中将数字0~9与对应字符相互转换
        C语言中将数字0~9与对应字符相互转换
        2024-10-9
        C/C++不能在子函数中求主函数中的数组长度
        C/C++不能在子函数中求主函数中的数组长度
        2024-10-9
        公告
        -- 本网站正处于大规模装修建设中 --
        目录
        0%
        📝 主旨内容1.什么是野指针野指针的成因2.对野指针,解引用“已被释放的指向空间”,会得到怎样的值?
        2022-2025 江牧.

        江牧律师 | 无限进步!

        Powered by NotionNext 4.7.4.