关于C语言free函数的问题?

我把a给free了吗,为什么a原来所占内存写入的数据还在,还能以访问a的形式输出?... 我把a给free了吗,为什么a原来所占内存写入的数据还在,还能以访问a的形式输出? 展开
 我来答
青青墙外草
2021-09-18 · TA获得超过2211个赞
知道小有建树答主
回答量:777
采纳率:68%
帮助的人:484万
展开全部
简单解释:
你用malloc申请一个3平米的房间,房卡是a
你告诉计算机,房间不用了,但是你没有把a还回去,就是没有让a=null
如果房间没有新人来,你还可以用a开门,并且看到你睡过的床、用过的毛巾。
但是很快,房间有新人入住了,但是没有换房卡(也换不了)。这时你用a开门进去,面临的将是很严重的法律问题——内存冲突,程序当掉。
所以说“安全”的程序语言,发现你走了不用房间了,就会自动退房并且把房卡回收掉。而C和C++都不是“安全”的。
匿名用户
2021-09-18
展开全部

释放简单地说,就是解除了和指针a的"绑定"关系,其他变量/程序也可以使用该内存空间

之所以该空间中的值没有改变,仅是因为还有没其他变量.程序来使用修改其值而已

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arongustc
科技发烧友

2021-09-18 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:6430万
展开全部
在a被其他人使用之前,原来得值不会被抹去,你这时去使用它风险非常高,因为内存不属于你,里面得内容是不可控得,这时说“能用”是对“能”得标准定得太低。不是不报错就“能”得
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式