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.