fn main() {
println!("{:p}", std::mem::size_of::<*const u32>());
}
当我在操场上尝试这个时,失败了:
error[E0277]: the trait bound `usize: Pointer` is not satisfied
--> src/main.rs:2:22
|
2 | println!("{:p}", std::mem::size_of::<*const u32>());
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `Pointer` is not implemented for `usize`
|
= note: required by `std::fmt::Pointer::fmt`
= note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
有没有办法像*const u32
那样打印原始指针的大小?
println!("{}", std::mem::size_of::<*const u32>());
{:p}
要求待打印事物的结果满足Pointer
,但size_of
返回不满足Pointer
的usize
。您可以简单地使用{}
打印usize
。
{:p}
本质上用于打印内存位置,这不是size_of
返回的内容。