char *p="hallo" mit delete[] freigeben



  • Kann man einen den Speicherbereich, auf den ein char Pointer zeigt wieder mit

    delete[]
    

    feigeben, obwohl man ihn nicht mit new angefordert hat?

    Ich meine, bei der zuweisung

    char *p="hallo";
    

    wir ja eigentlich kein new verwendet, aber ich weiß nicht wie es von statten geht.

    Könnte es sein, dass der Compiler es intern doch verwendet, denn wenn ich so speicher wieder freigebe bekomme ich keinen Fehler.

    char *p="HALLO";
    delete[] p;
    


  • Hallo

    Es gilt immer die Regel : wo kein new, da kein delete.
    *char p="hallo" ist ein String-Literal und dafür wird kein Speicher auf dem Heap reserviert, den du dann freigeben müstest.

    bis bald
    akari


Anmelden zum Antworten