gpt4 book ai didi

c - free() 不释放嵌入式 Linux 中的内存。

转载 作者:行者123 更新时间:2023-12-01 16:23:19 25 4
gpt4 key购买 nike

我在嵌入式 Linux 中使用 malloc() 分配了内存(大约 10 MB)。检查可用内存为 67080 kB,但即使使用 free() 释放它之后,它仍然保持不变。只有在应用程序终止后,内存才再次可用。 free() 是否不会使释放的内存可供系统使用,如果是,如何使其可用。

最佳答案

free 是一个 libc 库调用。它将堆空间标记为可供重用。它不保证关联的虚拟映射将被释放。只有在操作系统释放脏虚拟映射之后,该内存才会再次在系统范围内释放。这只能发生在页面 block 中。

此外,如果您使用 malloc 和系列分配内存但没有使用它,那么在此之前它实际上并没有消耗物理内存 - 因此释放它不会执行任何操作。

关于c - free() 不释放嵌入式 Linux 中的内存。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21433976/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com