Cpp New演算子 新しいページはコチラ
提供: yonewiki
(→new演算子) |
|||
1行: | 1行: | ||
+ | [[C PlusPlus#C++からの技術|C++]]に戻る | ||
+ | |||
+ | |||
<table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> | <table class="mbox-small" style="border:1px solid #aaa; background-color:#f9f9f9; width:22em;" id="RealTitleBanner"> | ||
<tr> | <tr> | ||
<td style="width:1px;"></td> | <td style="width:1px;"></td> | ||
− | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++ New演算子</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> | + | <td class="mbox-text plainlist" style="">本来の表記は「<b><span id="RealTitle" style="font-size:large;">C++(Cpp) New演算子</span></b>」です。この記事に付けられた題名は{{記事名の制約}}から不正確なものとなっています。</td> |
</tr> | </tr> | ||
</table> | </table> | ||
8行: | 11行: | ||
<br /> | <br /> | ||
== '''new演算子''' == | == '''new演算子''' == | ||
+ | |||
new演算子は、ポインタ変数に対して、new演算子の後ろに設定する型でメモリを確保する命令です。配列のメモリ確保も出来ます。このようなメモリの確保は動的なメモリ確保と呼ばれます。int n;のように定義された通常の変数はプログラム中で変数宣言されたところから、名前空間が終了するまでメモリ確保がされます。静的なメモリ確保と呼びます。常に一定の大きさのメモリを消費します。対して、動的なメモリ確保では、プログラム中で任意の区間で繰り返しメモリの確保と解放を繰り返すことができ、メモリ確保のタイミングをプログラム側で制御することが出来ます。配列の大きさもプログラム動作時に任意の大きさで確保できるため、必要最小限のメモリ確保を行うように制御することも可能です。静的なメモリ確保では配列の大きさは予め決められた一定の大きさでしか設定できないため、不必要にメモリを大きく確保することが多くなります。new演算子によって確保されたメモリは[[Cpp Delete演算子|delete演算子]]によって解放処理を記述します。new演算子で確保したメモリがあってもdelete演算子によって解放をしない場合は名前空間の終了時に解放されます。 | new演算子は、ポインタ変数に対して、new演算子の後ろに設定する型でメモリを確保する命令です。配列のメモリ確保も出来ます。このようなメモリの確保は動的なメモリ確保と呼ばれます。int n;のように定義された通常の変数はプログラム中で変数宣言されたところから、名前空間が終了するまでメモリ確保がされます。静的なメモリ確保と呼びます。常に一定の大きさのメモリを消費します。対して、動的なメモリ確保では、プログラム中で任意の区間で繰り返しメモリの確保と解放を繰り返すことができ、メモリ確保のタイミングをプログラム側で制御することが出来ます。配列の大きさもプログラム動作時に任意の大きさで確保できるため、必要最小限のメモリ確保を行うように制御することも可能です。静的なメモリ確保では配列の大きさは予め決められた一定の大きさでしか設定できないため、不必要にメモリを大きく確保することが多くなります。new演算子によって確保されたメモリは[[Cpp Delete演算子|delete演算子]]によって解放処理を記述します。new演算子で確保したメモリがあってもdelete演算子によって解放をしない場合は名前空間の終了時に解放されます。 | ||
56行: | 60行: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | [[C PlusPlus#C++からの技術|C++]]に戻る |