我的子函数返回值是一个指针,在子函数中我先用malloc定义了这个指针,然后return该指针。那在子函数里需要free吗?如果在return之前free了 不是就不能return了所以我感觉只要主函数所有malloc都free了,就没事。这个对吗??
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
如果子函数需要return一个内部分配的空间,那么释放就归调用者来free了,否则内部free再返回已经是无效空间
不过一般不这样做,一般谁分配谁释放建议主函数分配传入然后子函数自己往里面存东西,再由主函数负责释放
HUX布斯
TA贡献1876条经验 获得超6个赞
C没有自动释放功能,需要手动free掉malloc的堆空间。如果malloc空间后忘记free就会造成内存泄露问题:内存泄露是一个比较麻烦的问题,要是malloc少量空间而不free,在测试阶段很难发现,而投入生产中可能就会变成大量malloc而不free,内存空间没了,然后程序就挂了
- 2 回答
- 0 关注
- 221 浏览
添加回答
举报
0/150
提交
取消