Rechte von mit new angelegtem Speicher



  • Wo wird eigentlich gespeichert, wie groß der freizugebene Speicher ist?

    char* a;
    a=new char;
    
    char* b;
    b=a;
    delete b;
    

    Ist das richtig?
    oder darf nur a den Speicher wieder freigeben?



  • Frage 1: Das hängt von der Implementierung ab
    Frage 2: Is ok so



  • a) Die Größe des Speichers legt sich new irgendwo ab - allerdings gibt es keinen portablen Weg, da ranzukommen.

    b) Wer den Speicher freigibt, ist dem System egal - wichtig ist nur, daß sich alle darauf einigen, wer das macht (dein Beispiel klappt problemlos, wenn du jedoch ein delete a; hinten dran hängst, beschwert sich das System - und im realen Leben sieht man nicht so einfach, wer den Speicher noch verwenden will ;))


Anmelden zum Antworten