CHAR - Array komplett löschen
-
Hi,
ich habe ein CHAR - Array der Größe 200 definiert.
char help[200]
Wenn ich nun erst eine Zeichenkette mit einer Länge von 8 in help reinschreibe und danach eine 2.Zeichenkette mit der Länge 4 in help reinschreibe, habe ich das Problem, dass ich nach dem Reinschreiben von Zeichenkette 2 in das "help" immer noch die letzten 4 Werte von Zeichenkette 1 drinstehen habe.
Ich suche also eine Lösung, das Array "help" zwischen dem Reinschreiben von Zeichenkette 1 und 2 komplett zu löschen.
Eine andere Alternative wäre auch, wenn mir jemand sagt, wie ich das "help" dynamisch anpasse, also wenn ich 8 Zeichen reinschreibe, dann soll "help" von der Größe 9 sein und wenn ich halt nur 4 Zeichen reinschreibe, dann soll "help" die Größe 5 besitzen.
Vielen Dank im Voraus
MfG
MTC
-
Das dynamisch würde mit malloc () gehen, aber wegen den Strings,
eine Zeichenkette wird immer mit '\0' abgeschlossen, daher macht es nichts wenn
du noch das alte drin stehen hast.Mit malloc würd es so gehen:
char *zeiger = (char) malloc (9*sizeof(char)); //wären 9bytes,das sizeof nur zur sicherheit normal ist ein char immer 1Byte
-
also ich würde alles überschreiben:
for(int x=0; x<200; x++) help[x]='\0';
-
Wozu?
einfach help[0] = '\0';
schon ist der String gelöscht.
-
probiers mal mit
memset(&help,'\0',200);
-
Das ist absoluter schwachsinn, der Speicher wird eh erst nach beenden des Programms
wieder freigegeben, daher sind eure Methoden schlicht Zeitverschwenden.