Char Array zurücksetzen
-
Hallo, wie kann ich ein Char Array zurücksetzen, also aus
Array[100] = "Nachricht";
werde
Array[100] = "";
Mit Array[100] = ""; geht es ja nicht(cannot convert char[1] to char[100])
-
Da C-Strings mit der '\0' terminiert werden, reicht es das erste Element deines Arrayd auf '\0' zu setzen. Dadurch werden die anderen Elemente freilich nicht "genullt", dafür gäbe es, wenn es denn gebraucht werden würde, memset().
-
und mit einer for schleife, die jedes element auf "" setzt?
-
ok danke mit \0 hats geklappt
-
Es ginge aber genau so gut so, indem du alle Elemente durchläufst:
for(int i=0; i<100; i++) { array[i]=""; }
-
Und achja, wenn du dir sicher bist das du den array garnicht mehr brauchst;
delete[] array[]
-
Waygener schrieb:
Und achja, wenn du dir sicher bist das du den array garnicht mehr brauchst;
delete[] array[]
Das ist ganz und gar nicht gut.
Das Array des OP wurde auf dem Stack alloziert und nicht mit new[] angefordert.
Kein delete[]
Anonsten "undefined behaviour"
Simon
Edit: Abgesehen davon ist die Syntax noch falsch!
-
Würde eigentlich auch
ZeroMemory(Array, sizeof(Array));
gehen ?
-
Soweit ich weiss, leert Zeromemory Effekte für optimierte Compiler, dass heisst er löscht den Scheiss den der Compiler nicht annehmen kann...
-
Soweit ich weiß is es einfach nur:
void ZeroMemory( PVOID Destination, SIZE_T Length) { memset(Destination, 0, Legth); }
oder jedenfalls so ähnlich...