[Erledigt] Dynamisches Array ANSI-C++



  • Morgen!

    Ist evtl. nicht das richtige Forum, aber da ich mit .NET programmier schreib ichs trotzdem mal hier rein (Beitrag kann aber auch gern verschoben werden wenn er hier stört).

    Folgendes:
    Muss in mein .NET-Projekt ne Bibliothek mit ANSI-C++-Code einfügen. Geht auch ohne Probleme. Nur frag ich mich die ganze Zeit:
    Ich habe eine dynamisches Array:

    int beispiel = new int[anzahlElemente];
    

    Wenn ich nun ein array angelegt habe, muss ich ja normalerweise den Speicher freigeben mit delete. aber dann ist mein Array ja ganz weg. Wenn ich nun nur ein paar Elemente weniger brauch und das Array deswegen neu anlegen will, muss ich da dann trotzdem delete benutzen oder nicht?

    Also so mein ichs:

    anzahlElemente = 6;
    int beispiel = int[anzahlElemente];
    // Berechnungen oder sonstwas werden getätigt
    // für ne neue Berehcnung bräucht ich jetzt das gleiche Array, nur eben mit ner andren Anzahl an Elementen
    // brauch ich hier nun delete, gefolgt von new? Oder nicht?
    beispiel = int[12];
    

    Hab glaub zuviel in Managed programmiert dass ich sowas nimmer weiss!
    Danke für eure Tipps!



  • Du musst ein neues Array anlegen, die Werte die Du haben willst dort hin kopieren und das alte Array freigeben müssen.

    Schau DIr mal std::vector an. Der muss das zwar am Ende auch machen , löst das aber elegant für Dich.


Anmelden zum Antworten