gpt4 book ai didi

ios - 我如何找到一个结构占用了多少内存?

转载 作者:可可西里 更新时间:2023-11-01 01:39:27 27 4
gpt4 key购买 nike

简单的问题:有没有办法找出特定结构占用了多少内存?

理想情况下,我希望它打印到控制台。


编辑:Krumelur 使用sizeof 函数提供了简单的解决方案。

不幸的是,它似乎不适用于数组。以下代码

println("Size of int \(123) is: \(sizeofValue(123))")
println("Size of array \([0]) is: \(sizeofValue([0]))")
println("Size of array \([0, 1, 8, 20]) is: \(sizeofValue([0, 1, 8, 20]))")

产生这个输出:

Size of int 123 is: 8
Size of array [0] is: 8
Size of array [0, 1, 8, 20] is: 8

所以不同大小的数组给出相同的大小肯定是不正确的(至少对我来说是这样)。

最佳答案

sizeof(T) 运算符在 Swift 中可用。它返回指定类型或变量占用的大小,就像在 C 中一样。

然而,与 C 不同的是,它没有堆栈分配数组(静态数组)的概念。数组是指向对象的指针,这意味着它的大小始终是指针的大小(这与 C 中的堆分配数组相同)。要获取数组的大小,您必须执行以下操作

array.count * sizeof(Telement)

但即便如此,也只有当 Telement 不是分配堆内存的对象时才成立。

关于ios - 我如何找到一个结构占用了多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31575849/

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