Struct leeren
-
Hi.
Ich habe ein struct von der Dimension 100 und möchte es gerne leeren.
Also Nullterminieren und 0 setzen.
Muss man dazu alle Indexe durchgehen oder gibts was sicheres einfacheres?struct daten { int x char z[100]; bool w }; daten _daten[100];
-
memset(_daten.z, '\0', 100);
-
Das will so nicht funktionieren.

-
was genau funktioniert denn daran nicht? Wenn du das komplette Array "ausfegen" willst, klappt eventuell:
memset(_daten,0,100*sizeof(daten));(Alternativ kannst du auch eine Schleife verwenden:
for(int i=0;i<100;++i) memset(_daten[i].z,0,100);
-
Genau das war ja meine Frage
Muss man dazu alle Indexe durchgehen oder gibts was sicheres einfacheres?
Das kann ich auch einfacher
for(int i=0;i<100;++i) _daten[i].z[0] = 0x00;Ob man alles durchgehen muss oder ein struct insgesamt leeren kann.
Wohl nicht
Danke.
-
mit memset kannst du beliebig große zusammenhängende Bereiche auf 0 (oder einen anderen Wert) setzen - du mußt nur wissen, wie groß sie sind. Und dein Array ist 100*sizeof(daten) Bytes groß.
-
ccc schrieb:
Das will so nicht funktionieren.

Ups, hab übersehen, dass es sich um ein Array handelt. Sorry
