こんにちは、ナナです。
メモリは数値を覚えるための箱であり、ここまで変数を経由してメモリを使ってきました。
プログラムを動かす際にメモリにはいくつかの分類分けがされており、それぞれ特徴があります。メモリに関する知識を、さらに一段階掘り下げてみましょう。
本記事では次の疑問点を解消する内容となっています。
では、メモリの種類に関して学んでいきましょう。
メモリの種類にはどんなものがあるか?
師匠!メモリって数を読み書きするハードウェアですよね。種類なんてあるんですか?
あるんですよ。このメモリの種類によってプログラマーとして扱い方が変わるものもあります。各メモリで知っておくべき知識もあるので押さえておきたい内容ですね。
プログラムから扱うメモリには実はいくつかの分類があります。
組み込み開発ではメモリに関する知識が不可欠であり、この分類はしっかりと把握しておく必要があります。
種類 | 配置データ | Read/Write | 容量 | 説明 |
プログラムメモリ | 関数・定数 | R | 大サイズ | 関数や定数が配置 |
スタックメモリ | 変数 | R/W | 小サイズ | 関数内で定義した変数が配置 |
静的メモリ | 変数 | R/W | 中サイズ | 関数外で定義した変数が配置 |
動的メモリ | 変数 | R/W | 大サイズ | メモリ確保関数で取得 |
リンカによって配置される情報
これらの扱いをここまで意識しなかったのは、リンカが自動的に配置を切り替えてくれたおかげです。
リンカの役割の一つとして、関数や変数のメモリへの配置場所を決定する役割があります。
リンカについて詳しく知りたい方は『C言語 リンカの役割【リンクエラーが起きた時の対処方法】』を読んでください。
プログラムメモリ・静的メモリ・スタックメモリ・ヒープメモリを知ろう
師匠!メモリにはこんなに種類があったのですね。私はこの全てを知りたいのです。伝授してくださいっ!
いいよ。じゃあ、各特徴をまとめておいたから順にみていこうね。
皆さんによって定義された関数や変数は、広大なメモリの中にこれらの分類に従ってメモリ上に配置されます。
各メモリには特徴があり、扱い方を把握する必要があるのです。
メモリの種類別 解説記事一覧
壱ノ章 プログラムメモリ
弐ノ章 スタックメモリ
参ノ章 静的メモリ
肆ノ章 動的メモリ
個別のメモリ記事だけを見たい方は、このリンクから飛んでください。C言語入門カリキュラムを実施してる方は、次章を読み進めてください。