我在嵌入式 Linux 中使用 malloc() 分配了内存(大约 10 MB)。检查可用内存为 67080 kB,但即使使用 free() 释放它后,它仍然保持不变。只有在应用程序终止后,内存才再次可用。 free() 是否不会使释放的内存可供系统使用,如果是,如何使其可用。
free
是 libc 库调用。它将堆空间标记为可供重用。它不保证关联的虚拟映射将被释放。只有在操作系统释放脏虚拟映射之后,该内存才会再次在系统范围内释放。这只能发生在页面块中。
另外,如果您使用分配内存malloc
和家人并且没有使用它,那么直到那时它实际上并没有消耗物理内存 - 所以释放它不会有任何作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)