C++のnew演算子とdelete演算子の違いとは?

スポンサーリンク
スポンサーリンク


C++のnew演算子とdelete演算子の主な違いは、newはオブジェクトや配列のメモリを確保するために使われ、deleteはnew演算子で確保したメモリを解放するために使われることです。

メモリには、静的メモリと動的メモリの2種類があります。

例えば、int a; int array[10] のような文があったとしましょう。

このメモリは静的メモリと呼ばれます。


データを格納するためにどれだけのメモリが必要なのか、判断が難しい場合もあります

そのため、メモリは実行時に決定する必要があります

このタイプのメモリは動的メモリです。

このような状況では、new演算子やdelete演算子を使用します。

スポンサーリンク

What is new in C++

new 演算子は、メモリを確保する演算子です。

以下のプログラムを参照してください。

図1:new 演算子を用いた C++ プログラム 1

上のプログラムによると、ptrは整数型ポインタです。

7行目では,int型のメモリを指しています.8行目でptrが指す値は10になります。

を印刷すると、値10が表示されます。

同様に、new を使って以下のように配列を作成することができます。

上記のプログラムによると、ptrは整数型ポインタです。

8行目では,5個の整数要素を格納できるint型のメモリをptrが指しています.そして,配列に整数が格納される.最後に、forループが配列を繰り返し処理し、その値を表示します。

さらに、new 演算子を使って新しいオブジェクトを作成することもできます。

以下の例を参照してください。

図3:new 演算子を用いた C++ プログラム 3

クラスはStudentで、コンストラクタを持ちます。

メインプログラムでは、ptr は Student 型のポインタです。

13行目で、コンストラクタが呼び出されています。

したがって、Student 型のオブジェクトが生成されます。

Studentのコンストラクタ内のcout文が実行され、その文がコンソールに表示されます。

C++におけるdeleteとは

delete演算子は、メモリの割り当てを解除するための演算子です。

以下のプログラムを参考にしてください。

図4:delete 演算子を用いた C++ プログラム 1

上のプログラムで、ptrはint型ポインタです。

7行目でint型のメモリを指し、8行目で値10を与えています。

さらに11行目ではptrを削除しています。

Main Difference - new vs delete Operator in C++:削除演算子を用いたC++プログラム2

上のプログラムによれば、ptrは整数型ポインタです。

C++におけるnewとdeleteの演算子の違い

定義

簡単に説明すると、new は C++ の演算子で、オブジェクトまたはオブジェクトの配列のためにメモリを確保します。

一方、delete は C++ の演算子で、new 演算子で作成されたオブジェクトに割り当てられたメモリブロックを解放するものです。

 これらの定義には、C++におけるnew演算子とdelete演算子の主な相違点が含まれています。

使用方法

また、new 演算子は配列やオブジェクトにメモリを割り当てるのに役立つのに対し、delete 演算子は特定のオブジェクトや配列に割り当てられたメモリを解放するのに役立つ。

この点も、C++のnew演算子とdelete演算子の違いと言えます。

結論

C++のnew演算子とdelete演算子の基本的な違いは、newはオブジェクトや配列にメモリを確保するために使用し、deleteはnew演算子で確保したメモリを解放するために使用することです。

タイトルとURLをコピーしました