Was ist der Unterschied zwischen dem Operator new und delete in C ++? - Unterschied Zwischen

Was ist der Unterschied zwischen dem Operator new und delete in C ++?

Das Hauptunterschied zwischen neuem und löschen-Operator in C ++ ist das Mit new wird Speicher für ein Objekt oder ein Array zugewiesen, mit delete wird der mit dem neuen Operator zugewiesene Speicher freigegeben.

Es gibt zwei Arten von Speicher als statischen und dynamischen Speicher. Nehmen Sie eine Aussage wie int a an; int Array [10]; Der Programmierer weiß bereits, wie viel Speicher diese Variablen benötigen. Dieser Speicher ist ein statischer Speicher. Manchmal ist es schwierig zu bestimmen, wie viel Speicher zum Speichern von Daten erforderlich ist. Daher sollte der Speicher zur Laufzeit ermittelt werden. Diese Art von Speicher ist ein dynamischer Speicher. In diesen Situationen verwenden wir neue und Löschoperatoren.

Wichtige Bereiche

1. Was ist der neue Operator in C ++?
- Definition, Funktionalität
2. Was ist der Delete-Operator in C ++?
- Definition, Funktionalität
3. Was ist der Unterschied zwischen dem Operator new und delete in C ++?
- Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

C ++, Operator löschen, Speicherzuordnung, neuer Operator


Was ist neu in C ++?

Der neue Operator weist Speicher zu. Siehe das folgende Programm.


Abbildung 1: C ++ - Programm 1 mit neuem Operator

Gemäß dem obigen Programm ist der Ptr ein Integer-Zeiger. In Zeile 7 zeigt ptr auf den Speicher vom Typ int. In Zeile 8 wird der Wert ptr, der auf 10 wird. Beim Drucken von * p wird der Wert 10 angegeben.

Ebenso ist es möglich, Arrays mit new wie folgt zu erstellen.


Abbildung 2: C ++ - Programm 2 mit neuem Operator

Gemäß dem obigen Programm ist ptr ein Zeiger vom ganzzahligen Typ. In Zeile 8 zeigt ptr auf den Speicher vom Typ int, der 5 Integer-Elemente speichern kann. Die ganzzahligen Werte werden dann im Array gespeichert. Schließlich durchläuft for-Schleife das Array und gibt die Werte aus.

Außerdem können Sie mit dem neuen Operator neue Objekte erstellen. Siehe das unten stehende Beispiel.


Abbildung 3: C ++ - Programm 3 mit neuem Operator

Die Klasse ist Student und hat den Konstruktor. Im Hauptprogramm ist ptr ein Zeiger vom Typ Student. In Zeile 13 wird der Konstruktor aufgerufen. Daher wird ein Objekt vom Typ Student erstellt. Die Cout-Anweisung im Student-Konstruktor wird ausgeführt, und diese Anweisung wird in der Konsole angezeigt.

Was ist in C ++ zu löschen

Der Löschoperator hilft, Speicher freizugeben. Siehe das folgende Programm.


Abbildung 4: C ++ - Programm 1 mit Löschoperator

In dem obigen Programm ist ptr ein Int-Typ-Zeiger. In Zeile 7 zeigt es auf den Speicher vom Typ int, während in Zeile 8 der Wert 10 angegeben wird. Außerdem wird in Zeile 11 ptr gelöscht.


Abbildung 5: C ++ - Programm 2 mit Löschoperator

Gemäß dem obigen Programm ist ptr ein Zeiger vom ganzzahligen Typ. In Zeile 8 zeigt ptr auf den Speicher vom Typ int, der 2 Integer-Elemente speichern kann. Die ganzzahligen Werte werden dann im Array gespeichert. In Zeile 12 wird ptr gelöscht. Der Löschoperator gibt den Speicher frei.

Unterschied zwischen new und delete Operator in C ++

Definition

Kurz gesagt ist new ein Operator in C ++, der Speicher für ein Objekt oder ein Array von Objekten zuweist. Im Gegensatz dazu ist delete ein Operator in C ++, der einen Speicherblock freigibt, der zuvor für ein Objekt reserviert wurde, das mit dem neuen Operator erstellt wurde. Diese Definitionen enthalten den Hauptunterschied zwischen dem Operator new und delete in C ++.

Verwendungszweck

Darüber hinaus hilft der neue Operator bei der Zuweisung von Speicher für ein Array oder ein Objekt, während der Delete-Operator dazu beiträgt, den zugewiesenen Speicher einem bestimmten Objekt oder einem Array zuzuordnen. Dies ist ein weiterer Unterschied zwischen dem neuen und dem Löschoperator in C ++.

Fazit

Der grundlegende Unterschied zwischen dem new- und dem delete-Operator in C ++ besteht darin, dass mit new der Speicher für ein Objekt oder ein Array zugewiesen wird, während mit delete der mit dem new-Operator zugewiesene Speicher freigegeben wird.

Referenz:

1. Neuer BEDIENER IN C - 47, Codearchery, 6. März 2017,