-1

使用 malloc() 分配且未使用 free() 释放的内存会发生什么情况?

它会被认为是内存泄漏吗?

4

3 回答 3

3

如果您继续在长时间运行的程序中分配内存,并且即使在完成后也从未释放它,那么是的,这就是泄漏。如果它是一个短程序,那么它可能没问题,因为大多数现代操作系统会在进程终止时释放该内存。

于 2013-06-28T11:33:10.433 回答
0

多次调用 malloc 而不释放只是将内存碎片化到最大块等于可用总块的程度。
任何内存请求都可能随时失败,您的代码需要能够控制它。

于 2013-06-28T13:42:36.003 回答
0

是的,它可以被认为是内存泄漏。您应该始终释放动态分配的内存。考虑一下您的程序使用大量内存的情况,这些内存是在不同的步骤中分配的。现在,如果您继续释放不再需要的内存,您可能不会遇到任何麻烦,但如果您不释放内存,您可能会耗尽内存并且您的程序可能会终止。因此,始终释放内存被认为是一种好习惯,否则它将不断累积并妨碍程序的性能

于 2013-06-28T11:36:39.147 回答