问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 内存释放的问题

发布网友 发布时间:2022-04-29 11:33

我来回答

5个回答

热心网友 时间:2022-06-27 00:18

1、这样没有问题,不会造成内存泄露
2、当你不再使用这个buffer变量的时候就 free(buffer),buffer地址指向的空间就被释放掉了
在你的主函数中 这样使用
A *buffer=function();
//这里使用buffer
free(buffer); //施放内存
//有这一句就不会内存泄露了

内存泄露是对内存失去了控制,造成了内存的浪费,所以你要控制住你分配的内存
内存泄露典型例子是这样子的
A *buffer=function(); //buffer指向一段内存
buffer=function(); //buffer指向一段新内存,原来的内存没有释放,而且已经失去了对它的控制

热心网友 时间:2022-06-27 00:18

malloc申请的内存位于堆空间,不会被自动回收(程序结束后若没有释放,由操作系统处理)。当成功分配空间后,buffer具有一个非零值表示申请到的内存空间的首地址。在使用完这段空间之前,不要释放buffer,以免造成错误(释放buffer后,这段内存可能会被覆盖,操作这段内存导致的后果不可预料)。确认使用完后可以free。只要能够保证在使用完buffer指向的内存后free总是能够被立即正确调用,那么内存就不会泄露。至于在LZ的函数中的buffer,本身是一个在栈空间上的变量,到函数作用域外会被自动释放。
一般的做法是,A* buf=function(param);然后使用buf,使用完后free(buf);,最后置buf=NULL;以避免出现野指针。
----
[原创回答团]

参考资料:原创

热心网友 时间:2022-06-27 00:19

内存泄露在函数中看不出来。
整个程序中可以看出。
如果你动态分配了内存。
要记得释放。。。
你在函数体内不要释放buffer。因为你还要返回它。你一释放,你返回的地址就没用了。

既然你要在函数外部使用它,就在外部用完了之后,再释放好了。

只要在程序里记得释放,就不会内存泄露.

热心网友 时间:2022-06-27 00:19

在函数体内不要释放。你一释放,你返回的地址就没用了。

既然你要在函数外部使用它,就在外部用完了之后,再释放好了。

只要在程序里记得释放,就不会内存泄露

热心网友 时间:2022-06-27 00:20

嗯~你释放了的话 还返回干嘛呢。
当你停止使用该动态内存的时候释放就可以了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么时间试排卵纸最佳 排卵第十天排卵试纸弱阳怎么回事 手机app下载课后帮 课后帮点击了家长怎么改成学生的 课后帮绑定学生后还能绑定家长吗 课后帮怎么注册 课后帮注册教程 癫痫急救的正确方法 癫痫持续状态的抢救要点 小儿癫痫发作的急救措施 癫痫病急救常识有哪些要点 内存释放的时候具体进行了什么操作(C语言) 在C语言进行编程中,为什么要释放旧内存? C语言中如何释放已定义的数组空间? C语言 调用函数完后释放内存吗? c语言释放内存的问题 c语言中free函数释放内存后,该内存的里边的数据还有吗? 看C语言的书中说“释放存储空间”,是什么意思?什么叫做释放,为什么叫... C语言内存释放问题 求解关于C语言的释放内存问题? C语言中是如何释放内存单元的;原理又是什么? 微信如何图片加表情 如何查看手机上已连接的wifi密码? 初中800字半命题作文《站在……》在线等 站在校园的门口 作文 初三的作文帮帮忙 要800字的 作文特殊的站立700字 《站起来,勇往直前》800字作文谁能帮我 给篇800字 题目为 站起来做人 的作文。高2 努比亚z9max精英版怎么查看wifi密码 什么的站立。作文600字 查下农历1997年11月23日的公历是几月几日 华为荣耀V10连续点击三下缩放屏幕功能怎么弄 设置里没有高级模式 C语言用完申请来的内存怎么释放 C语言中再次释放已经释放的空间会造成什么后果? 华为荣耀10青春版,连续点几下屏幕,图标就会变大,不知怎么办? C语言中怎样清空内存动态分配的堆空间 在C语言中,如何释放动态数组里面某一个元素所在的内存? c语言分配内存方式有哪些 开发一个聊天交友软件,需要哪些费用?开发软件大概多少钱?需要服务器一年多少钱?还有其他什么费用? 华为荣耀10如何使用 网络视频会议软件,怎么收费呢,用过的人来说说,谢谢啊 好视通视频会议软件是免费的还是收费的?如果收费是怎样收的? 视频会议软件一般多少钱? 视频聊天软件开发需要多少钱 怎样取消WORD中数字与文字之间的距离(自动调节) word2003关闭自动调整字间距 怎么我的WORD一输字自动就分很开呢?怎么消除? word怎么去掉文字之间自动拉开距离,下一行又不回 word中自动调整文字间距问题 word 不自动调整间距 给高考好友200字的一封信