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
        • 我们可以这样理解: 变量未销毁时,只有自己能够修改,但是销毁之后,计算机也有了修改的权力,每一个语句过后,计算机都有可能修改那个位置的值,导致值发生变化。因而当野指针仍沿着原地址访问时,该值是不可预料的。
        但以上我们只解释了为什么野指针指向的值会发生改变,但改变的值会是多少?这个问题在我学完函数栈帧后会进一步来进行解答。
        计算输入的数字在二进制下包含1的个数序列中删除指定数字
        Loading...