Box
Box und mutable Referenz
Abschnitt betitelt „Box und mutable Referenz“fn main() { let mut n = 1; let b = Box::new(&mut n); **b += 1; println!("{}", n);}Eine Box kann eine mutable Referenz enthalten, daher führt das zweimalige Dereferenzieren von b zurück zu n.
Stack-Größe von Box-Array
Abschnitt betitelt „Stack-Größe von Box-Array“Angenommen, wir haben ein Programm mit einer Variablen:
let x: [Box<(usize, usize)>; 4] = /* ... */;Für ein Kompilierungsziel mit einer 64-Bit-Architektur, wie groß ist die minimal mögliche Speichergröße (in Bytes) von x auf dem Stack? Geben Sie Ihre Antwort in Ziffern an, z.B. 0, 1, usw.
Eine Box enthält einen Pointer, der auf einer 64-Bit-Architektur 8 Bytes groß ist. Ein Array von 4 Pointern ist daher mindestens 4 * 8 = 32 Bytes groß.