C语言中的malloc和free函数

请问这2个函数必须要配对使用吗?也就是说,我用了malloc开辟新的空间使用了之后必须要用free函数释放吗?这个的原理是什么?为什么还需要释放啊?不用free就不释放内... 请问这2个函数必须要配对使用吗?
也就是说,我用了malloc开辟新的空间使用了之后
必须要用free函数释放吗?
这个的原理是什么? 为什么还需要释放啊?
不用free就不释放内存,会怎样?
关机之后才启动电脑,就自动释放吗?
展开
 我来答
琦乐天书贞
2019-06-29 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:29%
帮助的人:595万
展开全部
malloc
向系统申请分配指定size个字节的内存空间。返回类型是
void*
类型。void*
表示未确定类型的指针。C,C++规定,void*
类型可以强制转换为任何其它类型的指针。
通俗讲就是一个分配空间的函数,在头文件”stdlib“内,给一个变量或指针分配一定大小的空间,一般要与size一起用。他的返回值是用处不大。
free是一个释放空间的函数,经malloc等函数分配空间后,取消其空间就用free函数。
汤曼珠宰岑
2019-01-13 · TA获得超过2.9万个赞
知道大有可为答主
回答量:1.1万
采纳率:25%
帮助的人:741万
展开全部
可以用,两者的区别在于,一个是创建静态内存,一个是动态内存。
只是你要做成服务程序或者有基于这个数组的算法时,别忘记用完p之后要free(),并且让p=(int*)null
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7996d88
2009-04-09 · TA获得超过372个赞
知道小有建树答主
回答量:254
采纳率:0%
帮助的人:233万
展开全部
一般我们常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显示释放的内存。应用程序一般使用malloc,realloc,new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,我们就说这块内存泄漏了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
科技鸟
2009-04-09 · TA获得超过1252个赞
知道小有建树答主
回答量:865
采纳率:0%
帮助的人:0
展开全部
不释放就永久占有你的那块内存,其他的变量也不能在申请到这块内存空间,相当于内存泄漏了,所以要释放,小程序不释放看似没有大问题,大程序就很讲究了,所以养成好习惯还是好的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
清影星河6A
2009-04-09 · TA获得超过851个赞
知道小有建树答主
回答量:753
采纳率:0%
帮助的人:898万
展开全部
可以做实验,循环 malloc(),一次 1M,不要 free(),看机器内存什么时候会耗完
这样你就能明白不 free 的危害了
当然,小程序自己玩玩,不 free 就无所谓了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式