スタック領域とヒープ領域

1.スタック領域(stack area/stack memory)

 最後に確保した順に開放する(LIFO方式)
   確保したのとは逆の順番で解放する

    サブルーチンからの戻り番地の退避に使用される

2.ヒープ領域(heap area/heap memory)

 任意の順序で確保・解放する
   ヒープとは山積みという意味
   どのような順序で確保・解放するかは、自由に決める

   割当てと解放の順序に関連がないデータの格納に使用される

3.利用する理由

 スタック領域を利用する理由
   関数内で定義された変数や、引数として受け取ったパラメータは、
   その関数の実行中のみ使用されるのに適している

 ヒープ領域を利用する理由
   動的にメモリを確保・開放するのに適したデータ構造を持っているため