C语言中,malloc函数动态分配内存后,如果不用free去释放,函数结束后空间会不会由系统释放?

如果可以被系统释放,那么如果不用free去释放这个内存空间,那么在函数结束前与静态分配的空间一样,也相当于只是静态分配的空间了?... 如果可以被系统释放,那么如果不用free去释放这个内存空间,那么在函数结束前与静态分配的空间一样,也相当于只是静态分配的空间了? 展开
 我来答
爱教育爱学习
高粉答主

2019-10-18 · 学而不思则罔,思而不学则殆
爱教育爱学习
采纳数:384 获赞数:112737

向TA提问 私信TA
展开全部

在程序中使用free释放,否则该段内存不会被释放掉。

C语言不会释放。所谓动态内存,是由malloc系列函数进行申请的内存,除非在程序中使用free释放,否则该段内存不会被释放掉。

标准库中malloc函数的实现原理。要了解针对malloc的内存存储结构,malloc不像全局变量一样,不是在编译器编译的时候就会分配内存空间,而是在调用到malloc函数时才会分配空间。有时还会中途调用free函数释放空间出来。

扩展资料

free:释放malloc分配的存储空间

malloc用于向系统申请一定数量的内存,如果你的程序一味的申请内存供自己使用,那么系统可分配给其它程序的内存就会减少,到最后无内存可用,最终导致系统运行缓慢,不稳定等问题。显然,这种只索取不奉献的行为是不可取的因此,C语言提供了free函数,用于向系统返还借用的内存。

当忘记使用free释放由malloc分配的内存时,表明程序存在”内存泄露“这一顽疾,因此对于上面的程序,在return 0之前,使用下面的代码进行完善。

参考资料来源:百度百科—c语言

阿平呀
高粉答主

2019-08-20 · 繁杂信息太多,你要学会辨别
知道答主
回答量:24
采纳率:100%
帮助的人:3450
展开全部

C语言中,malloc函数动态分配内存后,函数结束后不会释放,程序结束后会由系统释放,相当于在堆区人为开辟了静态区域(占用的是堆区的空间),如果有重复分配(循环),会不断占用内存,直到程序结束。

C语言是一门面向过程、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括一些类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。

扩展资料:

C语言的特点:

1、具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

2、丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

3、丰富的运算符

c语言包含34个运算符,它将赋值、括号等均视作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

参考资料来源:百度百科-c语言

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

推荐于2018-03-04 · 智能家居/数码/手机/智能家电产品都懂点
知道顶级答主
回答量:4.7万
采纳率:82%
帮助的人:2.3亿
展开全部
不是这个样子的

malloc是从堆区申请空间,函数结束后不会自动释放,如果不人为地释放的话,要等到程序结束后,系统才会自动回收
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Mr开心就好
2012-02-27 · TA获得超过149个赞
知道答主
回答量:110
采纳率:0%
帮助的人:106万
展开全部
malloc是从堆区申请空间,函数结束后不会自动释放,如果不调用free 去释放的话,要等到程序结束后,操作系统才会自动回收!

建议看看一些操作系统方面的书 例如,从window编到汇编语言
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alan19921201
2012-02-27
知道答主
回答量:20
采纳率:0%
帮助的人:27.5万
展开全部
是这样的,如果不释放,下次这段动态内存空间就无法再使用了,久而久之,容易造成内存泄露这样的问题
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式