Array von Pointern mit new anlegen
-
Hallo,
wie kann ich ein Array von Pointern anlegen?
Die Pointer sollen auf Instanzen der Klasse CTile zeigen.Folgender Versuch funktioniert nicht - das Array enthält nur 4 Elemente.
CTile **tiles; tiles = new CTile*[100];Wie geht das richtig?
-
Tubos schrieb:
Folgender Versuch funktioniert nicht - das Array enthält nur 4 Elemente.
CTile **tiles; tiles = new CTile*[100];Das ist schon richtig so du reservierst 100 pointer auf CTile.
Kurt
-
Tubos schrieb:
das Array enthält nur 4 Elemente.
Lass mich raten: Das hast du mit sizeof ermittelt.
Falls ja, schau dir noch mal an, was sizeof genau macht. Ein Tipp: Ein CTile** ist 4 Bytes groß.
-
Lass mich raten: Das hast du mit sizeof ermittelt.
Falls ja, schau dir noch mal an, was sizeof genau macht. Ein Tipp: Ein CTile** ist 4 Bytes groß.
Nein, das nicht - ich hab das deswegen geglaubt, weils beim Zugriff auf das 5. Element einen Absturz gab.
Jetzt bin ich draufgekommen woran es liegt: der fünfte Pointer war nicht initialisiert

Trotzdem danke!
-
Kannst auch noch am Ende delte[] nehmen, um den speicher wieder frei zugeben.
delte[] tiles;