leeren eines char Array?
-
Wahrscheinlich haut Ihr mich gleich, dass ich soetwas frage, aber ich konnte über google und in der FAQ auf Anhieb nix vernünftiges darüber finden.
Ich möchte ein char Array leeren.
char var[100];
das wird im laufe des Programms gefüllt.
Und nun will ich es gerne wieder geleert haben, aber nicht gelöscht.
Wie geht das.
Gruß skontox
-
Hi
Wenn du mit leeren, auf Leerstring setzen verstehst, sollte das hier reichen.
var[0] = '\0';
-
std::fill oder memset
-
Ja super, das klappt!
Kein Wunder das ich da nix drüber gefunden habe.
Der Ausdruck "leeren" war auch ziemlich blöd gewählt.Gruß skontox
-
Macht man das bei char* auch so?
Gruß skontox
-
skontox schrieb:
Macht man das bei char* auch so?
einen pointer kann man nicht "leeren", nur nullen oder löschen
char *pTemp = new char[256]; // nullen pTemp = NULL; // löschen delete [] pTemp;
-
Was skontox meint, ist sicherlich den Inhalt leeren. Mal abgesehen, das du mit dem Nullsetzen ein Speicherleck provozierst.
Ansonsten funktioniert das auch sochar *pTemp = new char[256]; // leeren pTemp[0] = '\0'; // löschen delete [] pTemp;
-
Naja, es gibt nen unterschied zwischen leeren string und nem genulltern zeiger
Mann sollt schon wissen was man braucht
Wobei ich mich mit dem Term "leeres Array" auch ned recht anfreunden kann. x[0]=0; ist ned wirklich leer
Aber fuern string bedeutes es, dass dein string kein zeichen hat ! (strlen wird dir 0 zurueckgeben .... im gegensatz zu nem nullpointer, der dir nen runtime error um die ohren haut )
Ciao ...
-
Natürlich ist das char Array nicht wirklich leer. Das hier gesagte (leeren) stimmt natürlich nur wenn man char* als string begreift (und verwendet). Es hindert natürlich niemand einen daran ein char* für beliebige (binäre) Daten zu verwenden.