タイトルの通りなんですが、RustのsliceやVecがしっくり来ていないので、メモリ上でどのように表現されているのかという観点で理解を深めようと思います。 環境 ❯ cargo version cargo 1.32.0 ❯ rustc --version rustc 1.33.0 また今回の環境ではusizeは8バイト長です。 println!("size of usize: {}", std::mem::size_of::<usize>()); // size of usize: 8 事前準備 メモリ上でどのように表現されているか確認するため、RustのSizedとfatポインタ - 簡潔なQのas_raw_bytesを利用します。 引数xを*const Tでキャストして、生ポインタからstd::mem::size_of_val(x)で得たバイト長を読み出します。 fn as_raw_
![メモリをダンプしてRustのsliceとVecを理解する - 逆さまにした](https://cdn-ak-scissors.b.st-hatena.com/image/square/dcd8fce20d0f336221e2ff6453de1c3051d77672/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fc%2Fcipepser%2F20190317%2F20190317174507.png)