Speicher freigeben



  • Hallo,

    wie kann ich diesen Speicher wieder freigeben?

    char * a = new char [256];

    habs bereits mit delete und so probiert, stürzt aber immer ab. Und free ist doch für C dachte ich. 😞



  • delete[] a;
    


  • Danke für deine Antwort.

    Genauso hab ichs auch schon probiert.

    Also im Konstruktor lege ich

    char * a = new char [256];

    an und im Destruktor rufe ich

    delete [] a;

    auf und in dieser Zeile stürzt er dann auch immer ab. Es kommt dann die Datei dbgheap.c. Aber keine Ahnung was da will!



  • Hallo

    dann hat der Absturz nichts direkt mit dem delete zu tun.
    Baua ein Minimalbeispiel zusammen das den Fehler reproduziert und wenn du den Fehler dann immer noch nicht selber gefunden hast, poste hier den relevanten Code.
    Um solche fehler zu finden ist übrigends der Debugger sehr hilfreich.

    bis bald
    akari



  • Lara* schrieb:

    Danke für deine Antwort.

    Genauso hab ichs auch schon probiert.

    Also im Konstruktor lege ich

    char * a = new char [256];

    Bist du dir sicher, daß du es genau so machst? In dem Fall hast du schon deinen Fehler - du hast eine lokale Variable 'a' definiert, die am Ende des Ctor's verschwindet, deine Membervariable 'a' hat damit überhaupt nichts zu tun und zeigt per Default irgendwohin.



  • Hallo,
    sicher das du die Regel der großen Drei berücksichtig hast? In diesem Fall: Hast du den Copy-Konstruktor/Zuweisungsoperator korrekt implementiert?


Anmelden zum Antworten