Chu*_*Chu 2 c free embedded-linux
我在嵌入式Linux中使用malloc()分配了内存(大约10 MB).并检查了空闲内存它是67080 kB但是即使在使用free()释放它之后它仍然是相同的.只有在应用程序终止后,内存才会再次可用.free()不会使释放的内存可用于系统,如果可以,则如何使其可用.
free是一个libc库调用.它将堆空间标记为可重用.它不保证将释放关联的虚拟映射.只有在您的操作系统发布了一个脏的虚拟映射之后,该内存才会在系统范围内再次释放.这只能在大量的页面中发生.
此外,如果您使用malloc和家庭分配内存并且没有使用它,那么它实际上并没有消耗物理内存直到那时 - 所以释放它将无能为力.