我有一个类型占用了太多的空间,无法在堆栈上分配:
struct Foo {
lots_of_bytes: [u8; 1024 * 10],
bar: bool,
baz: isize,
}
有两个显而易见的解决方案:
let foo = Box::new(Foo::new());
Or
struct Foo {
lots_of_bytes: Box<[u8; 1024 * 10]>,
bar: bool,
baz: isize,
}
总之,我要么在堆上分配整个 struct ,要么让该 struct 拥有堆指针.这两种解决方案中有一种被认为是"惯用"的解决方案吗?或者它是严格主观的还是依赖于上下文?