如何打印原始指针的大小


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返回不满足Pointerusize。您可以简单地使用{}打印usize

{:p}本质上用于打印内存位置,这不是size_of返回的内容。

相关内容

  • 没有找到相关文章

最新更新