为什么我的程序会自动释放东西?

时间:2018-09-07 00:20:53

标签: c valgrind

我正在尝试为大学任务编写程序,并且收到了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个免费功能时,这3个呆在那里。我以为,当一个函数返回而没有释放任何东西时,那就是内存泄漏的情况。

我的问题是:为什么不是?函数返回时是否释放其中声明的所有内容?如果是这样,我怎么知道一个函数正在成功释放其中声明的内容?

1 个答案:

答案 0 :(得分:2)

在源代码之外的代码(例如库函数)中,东西得到malloc()和free()。 Valgrind看到了所有这些。