Speicher wieder freigeben



  • Hallo,

    folgendes Problem:

    typedef struct struct_wahlschalter_alt
    {
      int zeitpunkt;
      int prg_nr;
    }STRUCT_WAHLSCHALTER_ALT;
    

    Ich lege meine Struktur in einem CPtrArray:

    STRUCT_WAHLSCHALTER_ALT *wahlschalter_alt;
    CPtrArray carr_wahlschalter_alt;
    //..
    wahlschalter_alt = new STRUCT_WAHLSCHALTER_ALT;
    //..
    carr_wahlschalter_alt.Add(wahlschalter_alt);
    

    Mein Problem ist nun: ich muss den Speicher wieder freigeben!
    Vielleicht könnt Ihr mir ein bißchen weiterhelfen,
    Merci



  • Hi,

    du bekommst mit der Methode CPtrArray::GetSize() herauß wieviele Elemente in deinem "dynamischen" Array vorhanden sind.

    Dann kannst du so etwas in der Art schreiben:

    // alle Elemente von carr_wahlschalter_alt löschen
    for(int n=0; n<carr_wahlschalter_alt.GetSize(); n++)
    {
        delete (STRUCT_WAHLSCHALTER_ALT*) carr_wahlschalter_alt[n];
        carr_wahlschalter_alt[n] = NULL;
    }
    carr_wahlschalter_alt.RemoveAll(); // die Länge des Arrays auf NULL zurücksetzen
    

    Grüße Rapha



  • danke, es klappt 😉


Anmelden zum Antworten