c - 为什么我的程序会自动释放东西?
问题描述
我正在尝试为大学任务做一个程序,我收到了 Valgrind 的这条消息:
==4244== HEAP SUMMARY:
==4244== in use at exit: 300 bytes in 2 blocks
==4244== total heap usage: 5 allocs, 3 frees, 2,428 bytes allocate
我不知道这3 个免费功能是从哪里来的,因为当我删除所有免费功能时,这 3 个免费功能仍然存在。我认为当一个函数返回而不释放东西时,这就是内存泄漏的情况。
我的问题是:为什么不是?函数返回时是否释放其中声明的所有内容?如果是这样,我怎么知道一个函数成功地释放了在那里声明的东西?
解决方案
东西在你的源代码之外的代码中得到 malloc()ed 和 free()ed,例如库函数。Valgrind 看到了这一切。
推荐阅读
- oracle - 如何根据最常出现的值获取记录?
- mule - 如何从 mule ESB 发出 HTTPS 请求?
- linux - 将 BIOS 旧版 Arch 安装克隆到映像文件
- python - 当 DEBUG = False 时,与静态文件相关的 Django 错误 500
- angular - Remove 1.js.map from git changes on Ionic 3 project
- sql - 如果不知道可能的值,如何计算列中不同值出现的次数?
- c# - 在 Swagger 中隐藏 Route 属性
- node.js - 你可以在 Typescript Compiler API 中引入排除/包含选项吗?
- rabbitmq - 无法让 Celery/RabbitMQ 在 Django 中运行我的共享任务
- python-3.x - Flask:如何将 url 作为输入传递?