为了账号安全,请及时绑定邮箱和手机立即绑定

您好,请问c语言在子函数中使用malloc,会自动free吗?有例子吗?

您好,请问c语言在子函数中使用malloc,会自动free吗?有例子吗?

C PHP
素胚勾勒不出你 2022-01-01 10:06:19
我的子函数返回值是一个指针,在子函数中我先用malloc定义了这个指针,然后return该指针。那在子函数里需要free吗?如果在return之前free了 不是就不能return了所以我感觉只要主函数所有malloc都free了,就没事。这个对吗??
查看完整描述

2 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

如果子函数需要return一个内部分配的空间,那么释放就归调用者来free了,否则内部free再返回已经是无效空间
不过一般不这样做,一般谁分配谁释放建议主函数分配传入然后子函数自己往里面存东西,再由主函数负责释放

查看完整回答
反对 回复 2022-01-04
?
HUX布斯

TA贡献1876条经验 获得超6个赞

C没有自动释放功能,需要手动free掉malloc的堆空间。如果malloc空间后忘记free就会造成内存泄露问题:内存泄露是一个比较麻烦的问题,要是malloc少量空间而不free,在测试阶段很难发现,而投入生产中可能就会变成大量malloc而不free,内存空间没了,然后程序就挂了

查看完整回答
反对 回复 2022-01-04
  • 2 回答
  • 0 关注
  • 221 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信