Strings löschen



  • Hallo,

    ich habe folgende situation.
    Gegeben sei ein String char* x;
    und möchte gerne diesen String löschen. Wie kann man das machen.

    Ginge das so: x='/0'
    also, indem man einfach das Nullzeichen einsetzt?

    Danke schonmal im vorraus!



  • Wohin zeigt denn dein Zeiger? Wenn du den Speicherplatz per malloc() angefordert hast, mußt du ihn auch per free() freigeben. Wenn dahinter ein (lokales) Zeichen-Array liegt, reicht es das erste Zeichen auf '\0' zu setzen.



  • Du must das erste Zeichen auf '\0' setzen:

    *x='/0'; // beachte den *
    

    Damit setzt du aber nur die Länge auf 0. Der Speicherplatz und die anderen Zeichen bleiben erhalten.



  • Also das ist ein einfaches Zeichenarray.

    Aber ich möchte gerne alle Zeichen gelöscht haben. Geht das nicht? Also so dass der Speicher auch leer ist danach.



  • Wenn du den Array-Inhalt komplett vernichten willst, probier mal memset(). Für die String-Funktionen reicht es aber aus, den Terminator passend zu setzen (s.o.).



  • Ok, also reicht es, wenn ich *x='/0' setze!

    Vielen Dank.


Log in to reply