根据我的理解,因为malloc动态分配mem,你需要释放该mem以便它可以再次使用.
如果你有一个指向内存的指针malloc,free那个内存,使用那个指针,将做正确的事情.是的,有一些魔法涉及; 这将由您的编译器处理.
是的,如果忽略内存释放并退出应用程序,操作系统将释放内存.然而,将其视为不一致被认为是不好的做法.操作系统可能无法做正确的事情(特别是在嵌入式设置中),或者可能无法及时完成.此外,如果您持续运行程序,最终可能会消耗越来越多的内存,最终消耗掉所有内存,并耗尽内存并崩溃.
呼叫者必须释放它(或安排它被释放).这意味着创建和返回资源的函数需要准确记录它应该如何被释放.
大多数操作系统将在程序退出时释放内存,作为"进程"定义的一部分.C标准并不关心会发生什么,它超出了程序的范围.并非所有操作系统都具有完整的流程抽象,但桌面式操作系统肯定会这样做.
在此之前释放它的主要原因是:
不自由的含糊其词的理由是:
解放的原因几乎总是超过反对的原因.