双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

C野指针简单理解

xk2wm xk2wm 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
首先,野指针不能理解为指向NULL的指针。在编程中,都会对指针变量进行if判断,一旦发现了是NULL都会立即报错或者返回。因此NULL指针危险性不会很大。 野指针,应该理解为指向一个不合法地址的指针,那么也就把问题转变为何为不合法地址了。有两种情况: 1.没有初始化指针变量 2.通过在堆区初始化了指针变量,在释放了堆区内存后,不再理会指针变量了 具体来说,第一种情况是因为没有初始化的指针变量的缺省值是乱七八糟随便给的,一个这样的地址就是不合法的地址,因此要对指针变量赋初始值。 第二种情况,比如int *p=(int*)malloc(sizeof(int)); free(p);这种操作,指针变量p的确赋初始值了,问题是如果free以后就不管p指针了,释放的只是malloc的内存,而p所指向的那个地址这一点没有变,因为我们知道指针就只是指向一个地址的,free掉了地址里面的内容,但是地址仍然存在,只是此时的地址已经没有内容,也就是没有意义了,那也就是说此时指针变量p指向了一个不合法的地址。
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
xk2wm
C语言 70,039 成员 243,237 内容