c - Valgrind 检测到内存泄漏,找不到它 C
解决方案
您initDictionary
不会在dictionary
任何地方返回指针。
这意味着当你这样做时
Dictionary* dictionary = initDictionary();
的值dictionary
将是不确定的(看似随机或垃圾),取消引用此指针或将其传递给free
将导致未定义的行为。
你可以通过添加一个简单的来解决这个问题
return dictionary;
在initDictionary
函数的最后。
如果你的编译器没有警告你不要从函数返回任何东西,你需要启用更详细的警告。构建时使用gcc
或clang
我推荐的选项-Wall -Wextra -Wpedantic
。对于 MSVC 使用/W4
.
推荐阅读
- firebase - 用于设置外键的 Firestore 引用数据类型
- python-3.x - 将方法移动到另一个 Python 文件
- python - Django Celery autoretry_for 和 retry_policy
- mysql - 无法创建 PoolableConnectionFactory 并打开 JDBC 连接
- java - 将双精度值显式转换为浮点数并将其存储在双精度变量中
- sql - 从表格中的逗号分隔值中获取单个值
- sql - spark sql中的广播连接(Spark 1.6.2)
- excel - UDF 中缺少 ParamArray
- ios - 使用 Core Data 删除可滑动的 TableView 单元格
- node.js - Puppeteer querySelector 返回 null