C语言中,malloc函数动态分配内存后,如果不用free去释放,函数结束后空间会不会由系统释放?
如果可以被系统释放,那么如果不用free去释放这个内存空间,那么在函数结束前与静态分配的空间一样,也相当于只是静态分配的空间了?...
如果可以被系统释放,那么如果不用free去释放这个内存空间,那么在函数结束前与静态分配的空间一样,也相当于只是静态分配的空间了?
展开
9个回答
展开全部
函数结束后不会释放,程序结束后会由系统释放,相当于在堆区人为开辟了静态区域(占用的是堆区的空间),如果有重复分配(循环),会不断占用内存,直到程序结束。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不是的。如果你不用free对也经分配的空间进行释放。那已经分配的空间不能被释放。空间就减少克。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-02-27
展开全部
原则上,Malloc申请的内存,是需要自己释放的,系统不会释放。所以用到了Malloc,需要同时调用Free。
Malloc申请的内存是在堆区,跟静态分配的静态区域不同的。
Malloc申请的内存是在堆区,跟静态分配的静态区域不同的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好是malloc和free匹配使用,我曾经就碰到过malloc后没free运行这就报错了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询