
关于C语言free函数的问题?
3个回答
展开全部
简单解释:
你用malloc申请一个3平米的房间,房卡是a
你告诉计算机,房间不用了,但是你没有把a还回去,就是没有让a=null
如果房间没有新人来,你还可以用a开门,并且看到你睡过的床、用过的毛巾。
但是很快,房间有新人入住了,但是没有换房卡(也换不了)。这时你用a开门进去,面临的将是很严重的法律问题——内存冲突,程序当掉。
所以说“安全”的程序语言,发现你走了不用房间了,就会自动退房并且把房卡回收掉。而C和C++都不是“安全”的。
你用malloc申请一个3平米的房间,房卡是a
你告诉计算机,房间不用了,但是你没有把a还回去,就是没有让a=null
如果房间没有新人来,你还可以用a开门,并且看到你睡过的床、用过的毛巾。
但是很快,房间有新人入住了,但是没有换房卡(也换不了)。这时你用a开门进去,面临的将是很严重的法律问题——内存冲突,程序当掉。
所以说“安全”的程序语言,发现你走了不用房间了,就会自动退房并且把房卡回收掉。而C和C++都不是“安全”的。
2021-09-18
展开全部
释放简单地说,就是解除了和指针a的"绑定"关系,其他变量/程序也可以使用该内存空间
之所以该空间中的值没有改变,仅是因为还有没其他变量.程序来使用修改其值而已
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在a被其他人使用之前,原来得值不会被抹去,你这时去使用它风险非常高,因为内存不属于你,里面得内容是不可控得,这时说“能用”是对“能”得标准定得太低。不是不报错就“能”得
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询