1.スタック領域(stack area/stack memory)
最後に確保した順に開放する(LIFO方式)
確保したのとは逆の順番で解放する
サブルーチンからの戻り番地の退避に使用される
2.ヒープ領域(heap area/heap memory)
任意の順序で確保・解放する
ヒープとは山積みという意味
どのような順序で確保・解放するかは、自由に決める
割当てと解放の順序に関連がないデータの格納に使用される
3.利用する理由
スタック領域を利用する理由
関数内で定義された変数や、引数として受け取ったパラメータは、
その関数の実行中のみ使用されるのに適している
ヒープ領域を利用する理由
動的にメモリを確保・開放するのに適したデータ構造を持っているため