C语言中 内存消亡 指向她的指针就一定消亡或成了空指针为啥是错的啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中 内存消亡 指向她的指针就一定消亡或成了空指针为啥是错的啊相关的知识,希望对你有一定的参考价值。

内存无效了,指向这片内存的指针自然也成为了野指针。但这并不代表指向这片内存的指针就不存在了或者自动变成空指针了。这就好像一栋房子拆了并不代表所有记载了这幢房子的地址的纸张,或是它们上面的字迹都会神秘消失,而只是过期了、没用了。 参考技术A 当然是错误的。
因为你申请的内存是一块区域(假如称为a),而指针是一个变量存储在另外一个区域(b)。
假如原来指针指向a区域,这个时候,你可以通过指针访问a区域。当你释放区域a后,指针并没有消失,它还在区域b中存储着。也就是说a区域释放后是不可访问的,其实这个时候指针还是指向a区域的,只是不能访问,一旦访问就是野指针访问非法区域。本回答被提问者和网友采纳

29. 高效编程



这个临时对象就必须生成!

隐式生成临时对象!


这个临时对象的生命周期是引用ref的生命周期!(不会立马消亡!但是指针指向临时对象是不安全的,过了这条语句就消亡,不像引用)

Test(int a=10,int b=10)



3 这里需要着重说明一下,之前说过编译器会对 临时对象再拷贝构造给另一个临时对象的过程进行优化,所以就不产生临时对象了,直接构造临时对象。

以上是关于C语言中 内存消亡 指向她的指针就一定消亡或成了空指针为啥是错的啊的主要内容,如果未能解决你的问题,请参考以下文章

Python正在消亡?致命弱点是否会让Python被新语言取代?

29. 高效编程

空悬指针和野指针(Dangling pointer and wild pointer)

有关C++指针与安全阐述

别学了!这 5 种即将消亡的编程语言

别学了!这 5 种即将消亡的编程语言