c语言,malloc()函数的问题

csdn上看来的,还是不懂。【Thatmeans,unfortunately,thataprogrammightruninsimplecases(whenmemoryis... csdn上看来的,还是不懂。
【That means, unfortunately, that a program might run in simple cases (when memory is never reallocated) but break when used harder (and when memory is reused).
*****
这句话的意思是malloc不会初始化所分配的空间。如果你所申请的空间不释放,不被其他地方再次申请就不会有什么后果。如果你申请的空间进行一些写操作之后(空间里的内容已改变)你再释放再申请给其他指针使用(没有手动初始化)就可能导致程序崩溃。】
什么叫做“如果你申请的空间进行一些写操作之后(空间里的内容已改变)你再释放再申请给其他指针使用(没有手动初始化)就可能导致程序崩溃。”
他说的,在申请给其他指针使用,这个指针指的是跟malloc结合使用的指针,还是所有的指针,比如指向一个int a;的。
把空间释放了,再申请给其他指针用,不一定申请空间的指针就是这一块里的吧,还有,为什么内容已经改变后申请给其他指针会崩溃,难道内容没改变就不会崩溃?不一样是有内容么?
展开
 我来答
kaixingui2012
2014-11-08 · TA获得超过4.2万个赞
知道大有可为答主
回答量:1.4万
采纳率:81%
帮助的人:6442万
展开全部
一、malloc()不会初始化所分配的空间。(即,你申请的空间中,其内容是不确定的,可能有值,也可能没值)

二、当free()释放所申请的空间时,空间中的内容也不会被自动清除。
三、不断的malloc, free的过程中,内存中就会产生一系列的内存碎片,整个内存就象一个大的垃圾场。再次申请内存时,新划分的内存空间就建立在这个垃圾场上,如果操作不当就会产生问题(如:没有清理就使用,没赋值就输出等)
搞明白以上三个情况,其他的问题,我想你不必要多猜想了。学会正确使用指针就好了,等你的知识积累多了,再进行相应的思考吧。
追问
好高深,是不是搞懂这个还要看看计算机组成之类的?
追答
学计算机开发要了解与计算机相关的各种知识,学的越多,明白的越多。学无止境
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式