Erstellen eines gewöhnlichen 2D -Arrays
Die folgende Erklärung erstellt ein gewöhnliches 2D -Array:
String arr2d [] [5] = "aa", "ab", "ac", "ad", "ae",Wenn dieses Array im globalen Bereich erstellt wird, kann es nicht verwendet werden (e.G. einen Elementwert neu zugewiesen) im globalen Umfang. Es kann jedoch sein, dass eines seiner Elemente einen Wert in den anderen Teilen neu zuordnet.
Um dieses Array gelöscht zu haben, lassen Sie es einfach aus dem Zielfernrohr gehen. Wenn es in einem anderen Umfang als dem globalen Bereich erstellt würde, würde es am Ende seines Blocks () aus dem Zielfernrohr ausgehen (). Wenn es im globalen Bereich erstellt würde, würde es am Ende des Programms nur aus dem Zielfernrohr gehen.
Kostenloser Store 2D -Array
Die folgende Anweisung zeigt, wie das obige Array jedoch mit einem anderen Zeigernamen im kostenlosen Laden dynamisch erstellt werden kann:
String (*ptr2d) [5] = neuer String [5] [5] "aa", "ab", "ac", "ad", "ae",Beachten Sie, wie das 2D -Array mit dem neuen Bediener erstellt wurde. Der Name des Arrays ist ptr2d.
Wenn dieses Array im globalen Bereich erstellt wird, kann es nicht verwendet werden (e.G. einen Elementwert neu zugewiesen) im globalen Umfang. Es kann jedoch eines seiner Elemente haben und einen Wert in den anderen Teilen neu zuordnen.
Verwenden Sie, um dieses Array zu löschen, den Operator Löschen [], wie unten gezeigt. Das Array in Free Store kann nicht wirklich gelöscht werden, indem es aus dem Zielfernrohr geht. Es muss mit dem Delete [] -Operator in seinem Geltungsbereich gelöscht werden, um den freien Speicher frei zu machen.
Artikelinhalt
- Einführung - siehe oben
- Löschen eines 2D -gewöhnlichen Arrays
- Dynamisch erstelltes 2D -Zeiger -Array von kostenlosen Laden löschen
- Abschluss
Löschen eines 2D -gewöhnlichen Arrays
Ein zweidimensionales gewöhnliches Array wird gelöscht, indem es einfach aus dem Zielfernrohr gehen lässt. Das folgende Programm zeigt dies mit einem verschachtelten Bereich:
#enthaltenDer Ausgang ist BB. Das If-Construct hat einen Block, der den verschachtelten Bereich ist. Das Array hört auf, am Ende des Blocks vorhanden zu sein. Es gibt einen Kommentarindikator, direkt unter dem Block, im Programm. Wenn es entfernt wird, wird das Programm nicht kompiliert und eine Fehlermeldung wird ausgegeben. Dies ergibt sich aus der Tatsache, dass das 2D -Array am Ende des Blocks tot ist.
Im folgenden Programm stirbt das gewöhnliche 2D -Array, das in der Funktionsbehörde deklariert ist, am Ende des Funktionsblocks:
#enthaltenDie Ausgabe ist still, BB. Es gibt einen Kommentarindikator direkt unter dem Funktionsblock im Programm. Wenn es entfernt wird, wird das Programm nicht kompiliert und eine Fehlermeldung wird ausgegeben. Dies ergibt sich aus der Tatsache, dass das 2D -Array am Ende des Blocks tot ist. Erinnern Sie sich auch daran, dass die Zuordnung eines Wertes zu einem 2D -Element nach der Erklärung im globalen Bereich nicht zulässig ist.
Dynamisch erstelltes 2D -Zeiger -Array von kostenlosen Laden löschen
Die Aufgabe nach der Erklärung ist im globalen Bereich nicht zulässig. Es ist also bequem, eine 2D -Array -Erklärung in einem verschachtelten Bereich in der C ++ - Hauptfunktion aus pädagogischen Gründen zu erhalten.
Ein zweidimensionales Array, das in der obigen Form deklariert ist, wird mit der Syntax "Löschen [] 2darray" gelöscht. Diese Löschung muss in ihrem Bereich auf freien Speicher und zur Vermeidung von Speicherleckagen erfolgen. Das folgende Programm zeigt dies mit einem verschachtelten Bereich:
#enthaltenDie Ausgabe ist AA von PTR2D [0] [0]. Nach dem Löschen gibt PTR2D [0] [0] nichts zurück. Obwohl die anderen Elemente wie PTR2D [1] [1] noch einen Wert zurückgeben würden, wird das Array als gelöscht angesehen.
2D kostenloser Store-Array als Zeiger-auf-Zeiger
Ein 2D-Array kann als Zeiger-zu-Zeiger erstellt werden. In diesem Fall müssen alle Zeilen zuerst gelöscht werden, bevor das eindimensionale Array verbleiben wird. Das folgende Programm zeigt dies in der C ++ - Hauptfunktion:
#enthaltenDer Ausgang ist BB vor dem Löschen. Nach dem Löschen ist der Rückgabewert von PTR2D [1] [1] nichts.
Jetzt ist dieses Zeiger 2D -Array im kostenlosen Laden ein Zeiger ein dimensionales Array von Zeiger -Arrays. Um das 2D-Array in Free Store zu löschen, müssen alle Zeilen zuerst mit Löschen [] gelöscht werden. Dadurch wird das Schema für ein 2D -Array im kostenlosen Laden gelöscht [].
Einbeziehung der Bibliothek
Der neue und löschende Betreiber ist tatsächlich in der Bibliothek definiert. Die Einbeziehung dieser Bibliothek ist jedoch optional.
Abschluss
Um ein 2D -gewöhnlicher Array zu löschen, lassen Sie es einfach aus dem Zielfernropp. Wenn sich das 2D -Array im kostenlosen Speicher befindet, muss es mit dem löschlichen [] -Operator in dem Zielfernrohr, in dem es deklariert wird, gelöscht werden. Wenn das 2D -Array in Free Store mit einer herkömmlichen Syntax erstellt würde, würde ein einfacher "Delete [] 2DarrayName" für das Löschen von Löschen erfolgen. Wenn es als Zeiger-zu-Zeiger erstellt wurde, müssen die Zeilen zuerst mit "Delete [] 2DarrayName [i] gelöscht werden und dann das verbleibende 1D-Array (ohne Elemente) mit" Delete [] gelöscht werden [] 2DarrayName ”.