一个内存释放的问题,算是bug吗?

发布于 2022-09-18 11:28:20 字数 530 浏览 14 评论 0

iniDoLoadItems函数中有一段代码
if ((result=getFileContent(szFilename, &content, \
                                &file_size)) != 0)
                {
                        return result;
                }
content的内存是在getFileContent函数内申请的,如果在外面出错了,如何去释放这块内存?
好像就不管了?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

忘东忘西忘不掉你 2022-09-25 11:28:20

回复 1# ckittterl

谢谢LZ的反馈!
说明一下,getFileContent这个函数只有当返回0(成功)时,返回的content指针才需要释放。
返回值非0(失败)时,函数内会确保已分配的content被释放掉,因此不需要调用处释放。

你丑哭了我 2022-09-25 11:28:20

恩,是这样的。
我的问题是如果getFileContent调用成功了,内存已经分配了,但是niDoLoadItems调用出错了呢?这块内存如何释放?

恩,是这样的。
我的问题是如果getFileContent调用成功了,内存已经分配了,但是niDoLoadItems调用出错了呢 ...
ckittterl 发表于 2010-03-02 11:38

V1.20版以后,用完后已经将content释放了!
你下载的是哪个版本?以前比较早的版本,的确是没有释放。
摘录一下V1.20的ChangeLog:
Version 1.20  2009-09-05
* base64 use context, functions changed
* common/ini_file_reader.c: fix memory leak

银河中√捞星星 2022-09-25 11:28:20

回复 4# happy_fish100

    哦,谢谢,可能我的版本比较老了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文