gpt4 book ai didi

rust - 盒装列表的第一个 Cons 是否在堆栈中?

转载 作者:行者123 更新时间:2023-11-29 08:07:29 25 4
gpt4 key购买 nike

我是 reading about the Box typeCons该章中提供的列表:

enum List {
Cons(i32, Box<List>),
Nil,
}

我明白为什么 Rust 不允许放置另一个 List里面List (请参阅 list 15-2)我还知道如何 Box<List>修复了问题(请参阅 list 15-5)。

List放在 Box 中, 这是否意味着只有第一个 Cons将在堆栈上带有指向 List 的指针在堆里?剩下的呢Cons ?他们会在堆栈上吗?当 List 时,它们怎么会在堆栈上?在堆里?或者它们在堆中(听起来不太好)?

最佳答案

是的。第一个 Cons 可以在堆栈上创建,但后续链接的 Cons 将在堆上分配,因为它们是通过 Box 间接访问的,它表示在堆上分配的类型。这是假设您在堆栈上自然/正常地创建第一个 Cons,但您当然也可以通过 Box 在堆上创建它,在这种情况下它们甚至第一个 Cons 都会在堆上。

关于rust - 盒装列表的第一个 Cons 是否在堆栈中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51051130/

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