new delete operators c with examples
Entdecken Sie alles über neue / gelöschte Operatoren in C ++.
Wir haben bereits in unseren früheren Tutorials Variablen und statische Arrays in C ++ gesehen.
Was den den Variablen und Arrays zugewiesenen Speicher betrifft, so ist es der statische Speicher, der vom Compiler abhängig vom Datentyp (bei Variablen) und den für Arrays bereitgestellten Dimensionen zugewiesen wird.
Der vom Compiler zugewiesene Speicher wird auf dem Stapel zugewiesen. In den meisten Fällen ist uns jedoch möglicherweise nicht genau bekannt, wie viel Speicher wir benötigen.
=> Lesen Sie hier die beliebte C ++ - Schulungsserie.
Was wir tun würden, ist, so viel Speicher zuzuweisen und zu entfernen, wie wir wollen und auch wie und wann wir es wollen. Dies erfolgt durch dynamisches Zuweisen des Speichers. Im Gegensatz zur statischen Zuordnung wird der dynamisch zugewiesene Speicher auf dem Heap zugewiesen.
Die dynamische Speicherzuweisung ist nützlich, da wir Speicher mit variabler Größe zuweisen können, was mit dem vom Compiler zugewiesenen Speicher nicht erreicht werden kann. Wir haben die Flexibilität, Speicher zuzuweisen, wenn wir ihn benötigen, und ihn zu entfernen, wenn wir ihn nicht benötigen.
Abgesehen von diesen Verwendungszwecken müssen wir jedoch auch berücksichtigen, dass es bei dynamisch zugewiesenem Speicher in der Verantwortung des Benutzers liegt, den Speicher freizugeben. Wenn wir vergessen, den Speicher freizugeben, führt dies zu einem Speicherverlust, bei dem der Speicher erst freigegeben wird, wenn das Programm beendet wird.
Dies kann dazu führen, dass zu viel Speicher verwendet wird, und führt daher zu schwerwiegenden Engpässen.
Was du lernen wirst:
- Dynamische Speicherzuordnung
- Der 'neue' Operator
- Verwenden des 'neuen' Operators mit Arrays
- Der Löschoperator
- Fazit
- Literatur-Empfehlungen
Dynamische Speicherzuordnung
Die Sprache C verwendet die Funktionen 'malloc', 'calloc' und 'realloc', um den Speicher dynamisch zuzuweisen. Um die Zuordnung des mit diesen Funktionen dynamisch zugewiesenen Speichers aufzuheben, wird der Funktionsaufruf 'frei' verwendet. Die C ++ - Sprache unterstützt auch diese Funktionen aus der C-Sprache, um Speicher zuzuweisen / zu entfernen.
Abgesehen von diesen Funktionen führt C ++ zwei neue Operatoren ein, die die Verwaltung des dynamischen Speichers effizienter gestalten. Dies sind der Operator 'Neu' zum Zuweisen von Speicher und der Operator 'Löschen' zum Aufheben der Zuweisung von Speicher.
In diesem Tutorial erfahren Sie mehr über neue und gelöschte Operatoren in C ++.
Der 'neue' Operator
Der Operator 'new' weist einer Variablen oder einer anderen Entität auf einem Heap Speicher zu.
Die allgemeine Syntax des 'neuen' Operators lautet:
pointer_variable_of_data_type = new data type;
Der oben erwähnte Datentyp kann ein beliebiger gültiger Datentyp sein, der von C ++ unterstützt wird. Dies kann ein integrierter Datentyp oder ein beliebiger benutzerdefinierter Datentyp sein, einschließlich Klassen und Strukturen.
Zum Beispiel,
Devops interviewen Fragen und Antworten für erfahrene
int *ptr = NULL; ptr = new int();
Im obigen Beispiel haben wir eine Zeigervariable 'ptr' als Ganzzahl deklariert und auf null initialisiert. Dann ordnen wir mit dem Operator 'new' der Variablen 'ptr' Speicher zu. Wenn auf dem Heap Speicher verfügbar ist, ist die zweite Anweisung erfolgreich. Wenn kein Speicher verfügbar ist, löst der neue Operator die Ausnahme 'std :: bad_alloc' aus.
Daher ist es besser zu überprüfen, ob der Speicher vom neuen Operator erfolgreich zugewiesen wurde, bevor diese Variable oder Entität im Programm verwendet wird.
Wir können Variablen auch mit dem neuen Operator wie folgt initialisieren:
ptr = new int(10);
Im obigen Beispiel ist die Zeigervariable 'ptr' der zugewiesene Speicher unter Verwendung des neuen Operators, und gleichzeitig ist der zugewiesene Wert 10. Dies ist eine weitere Art der Initialisierung in C ++.
Verwenden des 'neuen' Operators mit Arrays
Eine weitere Verwendung des Operators 'new' ist die Zuweisung von Speicher für Arrays. Hier geben wir die Anzahl der Elemente an, die dem Array zugewiesen werden sollen.
Ein Beispiel für die Zuweisung von Array-Elementen mit dem Operator 'new' ist unten angegeben:
int* myarray = NULL; myarray = new int(10);
Hier ordnet der neue Operator der Zeigervariablen myarray 10 fortlaufende Elemente vom Typ Integer zu und gibt den Zeiger auf das erste Element von myarray zurück.
Der Löschoperator
Der mit dem neuen Operator dynamisch zugewiesene Speicher muss vom Programmierer explizit freigegeben werden. Zu diesem Zweck wird uns der Operator 'Löschen' zur Verfügung gestellt.
Die allgemeine Syntax des Löschoperators lautet:
delete pointer_variable;
So können wir den der ptr-Variablen oben zugewiesenen Speicher wie folgt freigeben:
delete ptr;
Diese Anweisung gibt den der Variablen 'ptr' zugewiesenen Speicher wieder an den Speicherpool frei.
Wir können auch den Löschoperator verwenden, um den Arrays zugewiesenen Speicher freizugeben.
Zum Beispiel,Der dem obigen Array myarray zugewiesene Speicher kann wie folgt freigegeben werden:
delete() myarray;
Beachten Sie den Indexoperator, der mit dem Löschoperator verwendet wird. Dies liegt daran, dass wir, da wir das Array von Elementen zugewiesen haben, alle Speicherorte freigeben müssen.
Wenn wir stattdessen die Aussage verwendet hätten,
delete myarray;
Wir wissen, dass myarray auf das erste Element im Array zeigt, daher löscht die obige Anweisung nur das erste Element des Arrays. Die Verwendung des Index '()' gibt an, dass die Variable, deren Speicher freigegeben wird, ein Array ist und der gesamte zugewiesene Speicher freigegeben werden soll.
Das folgende Programmierbeispiel zeigt die Verwendung neuer und gelöschter Operatoren in C ++.
welche VPN für netflix
// Example program #include #include using namespace std; int main() { int *ptr = NULL; ptr = new int(); int *var = new int(12); if(!ptr) { cout<<'bad memory allocation'< Ausgabe:
Speicher erfolgreich zugewiesen
* ptr = 10
* var = 12
Myarray-Werte: 1 2 3 4 5 6 7 8 9 10
Der Screenshot dafür ist unten angegeben.

Im obigen Codebeispiel haben wir die Verwendung neuer und gelöschter Operatoren demonstriert. Wir haben den Operator 'new' verwendet, um Speicher für eine Variable und Arrays zuzuweisen und eine andere Variable mit einem Wert zu initialisieren. Dann löschen wir diese Entitäten mit dem Löschoperator.
Fazit
Hier geht es um die neuen und Löschoperatoren von C ++, was Standarddatentypen betrifft. Wir können auch neue und gelöschte Operatoren für benutzerdefinierte Datentypen als Klassen und Strukturen verwenden.
Wir werden mehr über die Verwendung dieser Operatoren zum Erstellen von Objekten erfahren, wenn wir die objektorientierte Programmierung mit C ++ lernen.
=> Schauen Sie sich hier das C ++ Anfängerhandbuch an.
Literatur-Empfehlungen
- Beispiele für arithmetische und boolesche Unix-Shell-Skriptoperatoren
- MongoDB Dokument mit Beispielen aktualisieren und löschen
- C ++ - Operatoren, Typen und Beispiele
- Python-Operatoren
- Python DateTime Tutorial mit Beispielen
- Befehl in Unix mit Beispielen ausschneiden
- Blasensortierung in C ++ mit Beispielen
- Unix Cat-Befehlssyntax, Optionen mit Beispielen