Hallo! Kann ich ein struct auch komplett mit 0 für alle Werte initialisieren oder muss ich das mit = { 0, 0, ...} für jedes einzeln machen? reicht struct = 0 ?
Das geht mit memset.
1 | struct
|
2 | {
|
3 | int x; |
4 | char y[45]; |
5 | float z; |
6 | } bla; |
7 | |
8 | memset(&bla, 0, sizeof (bla)); |
Zum Initialisieren (nicht später zum Nullsetzen, nur bei der Definition gleich) reicht auch:
1 | ... = { 0 }; |
Es müssen also nicht alle Werte aufgeführt werden, alle nicht erwähnten werden mit zu 0 gesetzt.
Klaus Wachtler schrieb: > Zum Initialisieren (nicht später zum Nullsetzen, nur bei der Definition > gleich) reicht auch: ... = { 0 }; > Es müssen also nicht alle Werte aufgeführt werden, alle nicht erwähnten > werden mit zu 0 gesetzt. häng aber auch gleich noch ein Komma an die Null, sonst meckert der Compiler wieder. ... = { 0, }; Grüße Jay
Was soll das helfen? Mit -Wextra warnt der gcc vor einer fehlenden Initialisierung, egal ob mit Komma oder nicht. Der Compiler aus VS2008 sagt da sowieso nix.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.