首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我有一个内存泄漏,负责的框架是strdup。谁能给我一些线索?

我有一个内存泄漏,负责的框架是strdup。谁能给我一些线索?
EN

Stack Overflow用户
提问于 2012-05-30 15:40:20
回答 2查看 404关注 0票数 4

当我用仪器检测时,我得到了一个内存泄漏。我没有太多的内存管理经验,所以我不知道这个问题的可能原因是什么,内存泄漏如下:

我想知道这种内存泄漏的可能原因。有人能给我一些线索吗?

EN

回答 2

Stack Overflow用户

发布于 2012-05-30 15:43:14

strdup在内部使用malloc,所以任何已经被strdup-ed释放的东西都必须使用free释放。

例如:

代码语言:javascript
运行
复制
char *duplicate = strdup("abcdef");
...
free(duplicate);
票数 2
EN

Stack Overflow用户

发布于 2012-05-30 15:53:09

strdup()是一个库函数,因此您需要返回回溯,直到在您的代码中找到调用者。在那里你会发现一个库调用,它导致内存被分配-它应该在你的程序中的其他地方有一个相应的释放调用。

(释放函数不一定是对free()的直接调用-例如,如果调用getaddrinfo()库函数,则相应的释放函数为freeaddrinfo())。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10811989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档