C ++のnew演算子とdelete演算子の違いは何ですか

目次:

Anonim

NS 主な違い C ++のnew演算子とdelete演算子の間は newはオブジェクトまたは配列にメモリを割り当てるために使用され、deleteはnew演算子を使用して割り当てられたメモリの割り当てを解除するために使用されます。

メモリには、静的メモリと動的メモリの2種類があります。 inta;などのステートメントを想定します。 int array [10];プログラマーは、これらの変数が必要とするメモリの量をすでに知っています。このメモリは静的メモリです。データの保存に必要なメモリ量を判断するのが難しい場合があります。したがって、メモリは実行時に決定する必要があります。このタイプのメモリは動的メモリです。このような状況では、new演算子とdelete演算子を使用します。

C ++、演算子の削除、メモリ割り当て、新しい演算子

C ++の新機能

新しい演算子はメモリを割り当てます。以下のプログラムを参照してください。

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

上記のプログラムによると、ptrは整数型のポインタです。 7行目で、ptrはint型メモリを指しています。 8行目で、値ptrは10になることを指しています。* pを出力すると、値10が得られます。

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

図2:新しい演算子を使用したC ++プログラム2

上記のプログラムによると、ptrは整数型のポインタです。 8行目で、ptrは5つの整数要素を格納できるint型のメモリを指しています。次に、整数値が配列に格納されます。最後に、forループは配列を反復処理し、値を出力します。

さらに、new演算子を使用して新しいオブジェクトを作成することもできます。以下の例を参照してください。

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

クラスはStudentで、コンストラクターがあります。メインプログラムでは、ptrはStudentタイプのポインタです。 13行目では、コンストラクターが呼び出されています。したがって、Studentタイプのオブジェクトが作成されます。 Studentコンストラクター内のcoutステートメントが実行され、そのステートメントがコンソールに表示されます。

C ++での削除とは

削除演算子は、メモリの割り当てを解除するのに役立ちます。以下のプログラムを参照してください。

図4:削除演算子を使用したC ++プログラム1

上記のプログラムでは、ptrはint型のポインタです。 7行目ではint型のメモリを指しており、8行目では値10が与えられています。さらに、11行目ではptrが削除されています。

図5:削除演算子を使用したC ++プログラム2

上記のプログラムによると、ptrは整数型のポインタです。 8行目で、ptrは2つの整数要素を格納できるint型のメモリを指しています。次に、整数値が配列に格納されます。 12行目では、ptrが削除されています。削除演算子はメモリの割り当てを解除します。

C ++でのnew演算子とdelete演算子の違い

意味

簡単に言うと、newは、オブジェクトまたはオブジェクトの配列にメモリを割り当てるC ++の演算子です。対照的に、deleteはC ++の演算子であり、new演算子を使用して作成されたオブジェクトに以前に割り当てられたメモリブロックの割り当てを解除します。これらの定義には、C ++のnew演算子とdelete演算子の主な違いが含まれています。

使用法

結論

C ++のnew演算子とdelete演算子の基本的な違いは、newはオブジェクトまたは配列にメモリを割り当てるために使用され、deleteはnew演算子を使用して割り当てられたメモリの割り当てを解除するために使用されることです。

リファレンス:

1. C – 47の新しいオペレーター、Codearchery、2017年3月6日、こちらから入手可能2。 Cの演算子の削除– 48、Codearchery、2017年3月22日、こちらから入手できます。

C ++のnew演算子とdelete演算子の違いは何ですか