gpt4 book ai didi

c - 动态分配的数组的大小是否存储在 RAM 中的某个位置?

转载 作者:行者123 更新时间:2023-11-30 15:08:09 24 4
gpt4 key购买 nike

我想知道动态分配的数组的大小是否存储在内存中的某个位置,因为调用 free()malloc() 初始化的指针上的函数或其家族准确地释放内存。

所以如果 free()确切地知道要取消分配多少内存,这是否意味着大小值存储在内存中的某个位置?

我们可以检索这个值吗?

最佳答案

malloc() 是一个库包装函数,用于多个级别的低层内存分配调用。它隐藏了诸如操作系统内存分配器分配的实际内存大小之类的详细信息,并直接将有效指针(如果成功)返回给进行调用的应用程序。该指针可以安全地使用(在边界内),并在使用完成后传递给free()

作为 malloc() 返回值返回的指针不必是(并且大多数时候,它不是)实际的指针内存分配器返回的地址。操作系统/内存分配器在后台进行一些簿记,以跟踪分配的内存大小,然后经过一些调整,它传递一个指向 malloc() 的指针,然后将其返回给应用程序调用malloc()

没有标准方式来获取实际信息(由于适当的原因,它应该对用户隐藏,恕我直言),但是有平台- 获取信息的依赖方式。

关于c - 动态分配的数组的大小是否存储在 RAM 中的某个位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37592554/

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