C言語入門 プログラム・静的・スタック・ヒープメモリを知ろう

C言語
この記事は約3分で読めます。

こんにちは、ナナです。

メモリは数値を覚えるための箱であり、ここまで変数を経由してメモリを使ってきました。

プログラムを動かす際にメモリにはいくつかの分類分けがされており、それぞれ特徴があります。メモリに関する知識を、さらに一段階掘り下げてみましょう。

本記事では次の疑問点を解消する内容となっています。

本記事で学習できること
  • メモリの種類には何があるか?
  • 各種類ごとの特徴とは?
  • プログラムメモリとは何か?
  • スタックメモリとは何か?
  • 静的メモリとは何か?
  • 動的メモリとは何か?

では、メモリの種類に関して学んでいきましょう。

スポンサー

メモリの種類にはどんなものがあるか?

師匠!メモリって数を読み書きするハードウェアですよね。種類なんてあるんですか?

ナナ

あるんですよ。このメモリの種類によってプログラマーとして扱い方が変わるものもあります。各メモリで知っておくべき知識もあるので押さえておきたい内容ですね。

プログラムから扱うメモリには実はいくつかの分類があります。

組み込み開発ではメモリに関する知識が不可欠であり、この分類はしっかりと把握しておく必要があります。

種類配置データRead/Write容量説明
プログラムメモリ関数・定数R大サイズ関数や定数が配置
スタックメモリ変数R/W小サイズ関数内で定義した変数が配置
静的メモリ変数R/W中サイズ関数外で定義した変数が配置
動的メモリ変数R/W大サイズメモリ確保関数で取得

リンカによって配置される情報

これらの扱いをここまで意識しなかったのは、リンカが自動的に配置を切り替えてくれたおかげです。

リンカの役割の一つとして、関数や変数のメモリへの配置場所を決定する役割があります。

リンカについて詳しく知りたい方は『C言語 リンカの役割【リンクエラーが起きた時の対処方法】』を読んでください。

スポンサー

プログラムメモリ・静的メモリ・スタックメモリ・ヒープメモリを知ろう

師匠!メモリにはこんなに種類があったのですね。私はこの全てを知りたいのです。伝授してくださいっ!

ナナ

いいよ。じゃあ、各特徴をまとめておいたから順にみていこうね。

皆さんによって定義された関数や変数は、広大なメモリの中にこれらの分類に従ってメモリ上に配置されます。

各メモリには特徴があり、扱い方を把握する必要があるのです。

メモリの種類別 解説記事一覧

壱ノ章 プログラムメモリ

弐ノ章 スタックメモリ

参ノ章 静的メモリ

肆ノ章 動的メモリ

ナナ

個別のメモリ記事だけを見たい方は、このリンクから飛んでください。C言語入門カリキュラムを実施してる方は、次章を読み進めてください。