gpt4 book ai didi

objective-c - 堆栈 - 框架 - Objective-C 中的堆

转载 作者:搜寻专家 更新时间:2023-10-30 19:46:35 24 4
gpt4 key购买 nike

我在这个网站上发现的所有问题都只涉及 StackHeap 而不是讨论 Frame 所以这是我的问题。不要搞清楚这三者之间的区别。

我所知道的:

框架:frame 就像一个函数实例变量的黑板。当函数运行时,所有实例变量都被存储在该函数的 frame 内。当一个函数被称为它的frame 是在 stack 之上创建的。

堆栈:堆栈可以可视化为的物理堆栈。当一个方法(或函数)被执行时,它分配一个堆栈中的内存块。

:所有对象指针都存在于中。

Stack 和 Frame 很清楚(我认为)但是我的 Heap 语句是否正确?

最佳答案

Heap: All object pointers live on the heap.

Stack and Frame is clear (I think) but am I right with my Heap statement?

不完全是。大多数(*) 动态分配的对象 存在于堆中,指向这些对象的指针 存在于其他对象(或变量,它们本质上是同一事物)中——这可能是在堆栈或堆上。 “对象”和“指向对象的指针”之间的区别在 Objective-C 中很重要(并非所有语言都如此),并且说所有“对象指针都在堆上”是不正确的。

(*) “最多”,因为在堆栈上分配动态对象是可能的,有时非常有用。你不能用 Objective-C 对象做到这一点,但你可以用 C 对象做到这一点(C 是 Objective-C 的一部分)。不要担心这个,这个脚注更多地用于说明这里描述的模型是一个简化。

关于objective-c - 堆栈 - 框架 - Objective-C 中的堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152661/

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