newとdelete

C++でのメモリの管理

C++ではメモリの確保と解放に new / delete が使用されます。
C言語のmallocやfreeも使えますが、基本的には new / deleteを使います。

new

new はメモリを確保する際に使用します。

int* p = new int;


このようにポインターに対して同じ型を指定することで確保できます。
又、下記のように配列として連続したアドレスのメモリを確保することもできます。

int* p = new int[5];


今回はint型のメモリを5つ確保しています。
これでp[0]からp[4]までの5つが利用できるように確保されます。

delete

delete はメモリの解放をする際に使用します。

delete p;


このようにdeleteに対して確保したアドレスの先頭を指定することで解放出来ます。
もし配列として確保していた場合はアドレスは下記のように解放する必要があります。

delete[] p;


deleteは配列と通常の確保で間違えやすいので気を付けて使いましょう!

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です