C++のメモリ確保と解放について調べてみた。 入手先 スタック領域とヒープ領域 項目 スタック ヒープ 管理者 OS・コンパイラ プログラマ 生存期間 関数終了・デストラクタまで delete・freeされるまで 変数サイズ コンパイル時点で固定 実行時に動的 メモリ総量 少ない 多い 確保 int v; int v = new int(); 解放 (宣言した関数終了時に自動解放) delete v; 変数を宣言する方法が違う スタック領域は少ないため、多く確保してしまうとスタックオーバーフローを起こしてしまう。 メモリ確保 メモリ確保にはおおよそ2種類の方法がある。 自動変数によるスタック領域のメモリ確保 newやmallocによるヒープ領域のメモリ確保 int value; 上記のコードは自動変数と呼ぶ。 OSやコンパイラがメモリの確保と解放を行ってくれる。 スタック領域に確保される。
![C++のメモリ確保と解放 - やってみる](https://cdn-ak-scissors.b.st-hatena.com/image/square/1b0a70fe69e6b9dc0c97efa71afc8516a122f063/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fy%2Fytyaru%2F20160711%2F20160711184621.png)