gpt4 book ai didi

c - malloc 在哪里返回内存?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:44:05 25 4
gpt4 key购买 nike

我正在学习 C 中的 malloc 函数。我知道如何请求内存

p = malloc(number_of_bytes);

并在不使用时释放它

free(p);

但我想知道一些比这更理论化的东西:我知道对于虚拟内存,存在三种可能性:

  1. 虚拟地址可以没有分配物理存储(在页面文件或物理内存中)

  2. 虚拟地址可以在页面文件上有物理存储

  3. 虚拟地址可以在物理内存上有物理存储

所以,我的问题是:

malloc 返回的内存在哪里(我的意思是,它在页面文件上,在物理内存上(也许是堆?))?

最佳答案

is it on the pagefile, on the physical memory?

在具有虚拟内存管理的操作系统上,malloc 不知道它分配的虚拟内存是如何映射到物理内存的,这完全是设计使然。 malloc 在比虚拟内存管理器更高的级别上运行。 malloc 操作系统提供的地址空间中的所有内存都是相同的。

一些页面可能以物理映射开始,只是稍后被换出到一个文件中,然后在需要时返回到内存中。但是,操作系统对您的程序透明地执行所有这些操作,因此 malloc 不知道物理内存。

关于c - malloc 在哪里返回内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33917415/

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