gpt4 book ai didi

.net - 如何从堆栈中删除值类型?

转载 作者:行者123 更新时间:2023-12-01 07:58:40 25 4
gpt4 key购买 nike

我正在尝试研究 CLR 内部的细节,其中一件对我来说很明显的事情并不适合我:

如何从堆栈中清除值类型?

我知道 GC 会清除堆栈中没有地址的所有堆,但我读到它不会清除堆栈分配值类型。

有什么想法吗?

最佳答案

我不确定我是否理解您的问题,但我会尽力回答并希望它能有所帮助。

一般来说,为了从栈中清除值,有一个操作叫做pop。所以要删除值类型的值或引用类型的值,你弹出它。反之亦然,push 将值添加到堆栈。

(我写“一般”是因为它适用于所有基于堆栈的数据结构,而不仅仅是适用于 CLR 堆栈。)

你需要了解的另一件事是,与堆不同的是,堆栈不是通过压缩内存区域来收集的,堆栈是预先分配的内存块,并且在需要时压入和弹出值。

如果您想知道堆栈内存的外观和寄存器使用等的确切细节,您可以在谷歌上找到一些链接,但我认为这不是您要找的东西。

关于.net - 如何从堆栈中删除值类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37096670/

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