char* löschen



  • Hallo sagen wir ich habe

    char * text = new char[100];
    tolles_object->merk_dir_den_zeiger_auf(text);
    
    //irgendwo  und irgendwann ganz anderes aber später
    
    char * geholter_text = tolles_object->gib_mir_text_pointer();
    delete geholter_text;
    

    Woher weiß delete wieviel speicher er freigeben darf? Der Pointer hat doch gar keine Information mehr über die Länge des Arrays?

    Danke



  • delete weiss es nicht. Deshalb sollst du auch delete[] verwenden.

    Letzteres hat das nötige Wissen, weil von der Laufzeitumgebung Informationen über die angeforderten Speicherbereiche gesammelt werden.


Anmelden zum Antworten