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;


Anmelden zum Antworten