2.1 記憶域クラス

  3.動的記憶域クラス
 これまでの2種類の記憶域クラスに対して、ポインタで識別子を宣言し、ポインタ変数にmalloc関数で与えられる記憶域クラスを、動的記憶域クラスと呼びます。

 動的記憶域クラスは、基本的にプログラムの実行中に渡って記憶域を確保し続け、その領域の確保は、malloc()によるユーザからの明示的な指定で始まります。しかる後に、確保したメモリ領域を解放するために、関数free()を呼ぶことにより、その寿命が終了します。

 そのため、大規模に動的記憶域クラスを使う場合、不要になった領域をユーザが意識的に解放しないと、システムで利用可能な記憶領域が無くなってしまう(メモリの食い潰し、メモリ・リーク)現象を引き起こします。大規模にメモリ確保を続けるような本格的なプログラムの場合は、メモリの解放のタイミングに気を付ける必要があります。小規模なプログラムの場合、freeを明示的に呼ぶことは少ないですが、freeが呼ばれない場合、プログラムの終了時まで動的記憶域クラスの変数の寿命は続いていることに注意しましょう。