gpt4 book ai didi

delphi - 动态数组占用的 "real"内存大小是多少?

转载 作者:行者123 更新时间:2023-12-03 15:12:02 24 4
gpt4 key购买 nike

示例:

procedure Test;
var
AText: array of AnsiChar;
begin
SetLength(AText, 7);
end;

问题

AText在内存中占用的实际大小是多少?是不是7+其长度的基数大小,即7+4=11字节?

最佳答案

加上 4 个字节的引用计数。当然还有堆管理器开销(这取决于 delphi 版本并使用内存管理器,很容易达到 12-16 字节)。

这意味着:

  • sizeof(元素)*元素个数
  • sizeof(引用计数)
    • 当前实现:sizeof(integer)=4
  • sizeof(元素编号)
    • FPC 实际上存储的是最高元素,而不是元素计数。不知道德尔福)
    • 当前实现:sizeof(integer)=4
  • 堆开销。
    • 至少为整个 block 分配的大小。
    • 可能还有一个或两个指针(下一个 block )。但这取决于内存管理器
    • 许多内存管理器的最小块大小为 16 或 32。

关于delphi - 动态数组占用的 "real"内存大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4448897/

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