野指针,空指针

野指针:

若定义整型变量时不进行初始化,系统会自动分配随机值给变量。

同样若定义整型指针变量不进行初始化,系统会随机分配地址给指针变量。

此时这个指针叫作野指针。

 当对野指针进行解引用并进行读取时,就会导致有可能将内存中 代码区、数据区、堆区中的地址赋予某个变量,若后续接着对这个变量进行修改,将有可能将其他各区(上述三个区)的数据进行修改,导致很严重的错误(特别是代码区)。

  在vs2019中,若对未初始化的指针变量进行解引用,系统可以识别出此错误。

                                                      

  要杜绝野指针的出现,

  就得在定义指针的时候,必须对其赋值或者定义为空指针(这是重中之重)。

空指针:

    0地址就是空地址。空指针不能进行解引用、不能赋值。 

    定义空指针可以用来 对指针进行判空,用来判定指针是否合法,合法才能在后续进行解引用。

    所以在编程中,只要函数的形参使用的是指针变量,就得记得首先对指针进行判空

关于未定义的全局变量,静态全局变量,局部静态变量,系统都是自动分配为0。

  而在vs2019中,未定义的全局指针变量,全局静态指针变量,局部静态指针变量,系统都是自动分配为空指针。但是其他编译器就未必了,所以在编程中必须记得给指针变量初始化(赋值或者定义为空指针)。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值