使用malloc()分配的内存会发生什么,并且在c语言中不使用free()释放?

时间:2013-06-28 11:31:06

标签: c malloc free

使用malloc()分配的内存会发生什么变化并且不使用free()释放?

是否会被视为内存泄漏?

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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