我正在学习用C编写代码,我遇到了“内存泄漏”这个术语。所以,我想问,如果我用C写了一个简单的程序,其中使用了malloc(),如果我没有释放它(尽管我知道释放动态分配的内存是一个很好的编程实践)。内存泄漏会永久存在于系统中吗?操作系统会不会再也不使用那个内存,因为它可能已经丢失了?
只需考虑分配少量内存(100字节左右)的情况,我们在练习时就是这样做的。我问这个是因为我为了调试而多次运行同一个程序,这些内存泄漏是有害的吗?
或者操作系统检测到内存泄漏并将其恢复?
任何关于上述主题和相关主题的帮助都将不胜感激。
发布于 2020-10-02 19:36:37
通用操作系统的设计目的是防止由行为不端的程序引起的各种问题。这包括管理内存。操作系统维护自己的记录,记录已经为每个进程提供了什么内存,并在进程终止时回收该内存(并且没有其他进程在使用它,就像各种共享内存一样)。
特殊用途的“嵌入式”操作系统可能不提供此功能。
https://stackoverflow.com/questions/64177083
复制相似问题