C语言的核心和灵魂
来源:面包芯语    时间:2023-04-18 09:22:24

点击上方“C语言与CPP编程”,选择“关注/置顶/星标公众号”


(资料图片仅供参考)

干货福利,第一时间送达!

你好,我是飞宇。

提起C语言,大部分开发者很自然就会想到指针二字。

没错,作为C的核心和灵魂,它的地位咱们就不再赘述了。

今天,我们想跟大家讲的是指针中的两个特有名词:“悬空指针”和“野指针”。

C语言中的指针可以指向一块内存,如果这块内存稍后被操作系统回收(被释放),但是指针仍然指向这块内存,那么,此时该指针就是“悬空指针”。下面这段C语言代码是一个例子,请看:

C语言中的“悬空指针”会引发不可预知的错误,而且这种错误一旦发生,很难定位。这是因为在 free(p) 之后,p 指针仍然指向之前分配的内存,如果这块内存暂时可以被程序访问并且不会造成冲突,那么之后使用 p 并不会引发错误。

所以,在实际的C语言程序开发中,为了避免出现“悬空指针”引发不可预知的错误,在释放内存之后,常常会将指针 p 赋值为 NULL:

你好,我是飞宇,本硕均于某中流985 CS就读,先后于百度搜索以及字节某电商部门担任Linux C/C++后端研发工程师。

同时,我也是知乎博主@韩飞宇,日常分享C/C++、计算机学习经验、工作体会,欢迎点击阅读原文围观我分享的学习经验

我组建了一些社群一起交流,群里有大牛也有小白,如果你有意可以一起进群交流。

欢迎你添加我的微信,我拉你进技术交流群。此外,我也会经常在微信上分享一些计算机学习经验以及工作体验,还有一些内推机会。

扫描上方二维码,加我微信

我的私人微信

点击阅读原文查看你错过的宝藏

上一篇:

下一篇:

X 关闭

Copyright   2015-2022 人人手机网版权所有  备案号: 粤ICP备18023326号-36   联系邮箱:8557298@qq.com