您的initDictionary
不会在任何地方返回指针dictionary
。
这意味着您这样做
Dictionary* dictionary = initDictionary();
dictionary
的值将是不确定(看似随机或无用),使用取消引用此指针或将其传递给free
将得到undefined behavior。
您可以通过添加一个简单的方法来解决此问题
return dictionary;
initDictionary
功能的末尾。
如果编译器没有警告您不要从该函数返回任何内容,则需要启用更多详细警告。在构建时,建议使用gcc
或clang
选项。对于MSVC,请使用-Wall -Wextra -Wpedantic
。