κeenです。 今回の話は別にRustに限ったものではないのですが、よくRustを始めたばかりの人がスタックとヒープが分からないと言っているのをみかけるので少しメモリの話をしますね。 厳密な話というよりは雰囲気を掴んで欲しいという感じです。 メモリは配列 プログラム(プロセス)のメモリには実行するプログラム(機械語)やグローバル変数/定数、関数の引数やローカル変数、その他プログラムで使うデータ領域などを置きます。 プロセスに割り当てられるメモリというのは、1つの巨大なのっぺらな配列みたいなものです。サイズも決まってます。64bit OSなら2^64 byteです。 0 2^64 +--------------- ----+ | | | | | ~~ | | +--------------- ----+ これは仮想的なメモリなので実際の物理メモリに2^64 byteの配列がドンと確保される訳
![メモリとスタックとヒープとプログラミング言語 | κeenのHappy Hacκing Blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/67886e05a10bed387a44566b87d38356c0d49ec8/height=288;version=1;width=512/https%3A%2F%2Fkeens.github.io%2Fimages%2Fogp%2Fpost%2Fmemoritosutakkutohi_puto.png)