Valgrind检测到内存泄漏,找不到它C

问题描述 投票:-4回答:1

Valgrind正在发现内存泄漏,但我似乎无法查明它们,我希望这里有人可以帮助我:

enter image description here

enter image description here

主要电话是Dictionary* dictionary = initDictionary();

c memory malloc valgrind
1个回答
0
投票

您的initDictionary不会在任何地方返回指针dictionary

这意味着您这样做

Dictionary* dictionary = initDictionary();

dictionary的值将是不确定(看似随机或无用),使用取消引用此指针或将其传递给free将得到undefined behavior

您可以通过添加一个简单的方法来解决此问题

return dictionary;

initDictionary功能的末尾。


如果编译器没有警告您不要从该函数返回任何内容,则需要启用更多详细警告。在构建时,建议使用gccclang选项。对于MSVC,请使用-Wall -Wextra -Wpedantic

© www.soinside.com 2019 - 2024. All rights reserved.