у меня есть следующие Пакетирование и кучного выделяются переменные:Почему размер указателя на что-то на куче больше, чем размер переменной стека?
let var1 = 10;
let var2 = Box::new(10);
Печать этих выходов такое же значение, 10
:
println!("var1 ={} var2 ={}", var1, * var2);
Когда я проверить размер с помощью mem::size_of_val()
, var1
равно 4 и var2
составляет 8.
Не является var2
указателем на кучу? Почему указатель будет больше, чем переменная стека (var1
)?
Кроме того, является использование «*
» (то есть, *var2
) в println!()
предполагается делать что-то другое? Я получаю 10 в любом случае.