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

スタック領域

  • コンパイラやOSが事前に割り当てる領域
  • 領域の解放もOSが自動的にしてくれる ←管理が楽

下記のようにコード内で変数宣言した場合、各変数に割り当てられているメモリ領域はスタック領域に割りあてられる。

void test(){
 int i=5
 char str[5];
}

Windowsの場合(Visual Studioの場合)、スタックサイズは1Mがデフォルトとなっている(Linuxより少ないはず)。よって、ヒープ領域を有効に使う必要がある。

ヒープ領域

  • アプリケーションやOSで動的に割り当てたり解放できる領域
  • malloc/calloc関数で生成し、ポインターで管理する
  • 領域の解放処理をプログラムに記述する必要がある ← プログラミングが複雑になる