Werte in Struct auf Null setzen
-
Hallo einen Kleine Frage ich habe einen Struct in welchem ich bisher 10 Messwerte Speichere.Diese Messwerte setze ich am Anfang meines Programms alle auf null.Gibt es noch eine andere Möglichkeit das zu machen als wie die von mir aufgezeigte?Glaube da gibt es noch ne einfache Möglichkeit komme aber gerade nicht drauf.Besten Dank schon mal.
struct Messwerte { int wert1; int wert2; int wert3; int wert4; etc... }MW; void ResMesswerte(void) { MW.wert1 = 0; MW.wert2 = 0; MW.wert3 = 0; MW.wert4 = 0; }
-
memset
-
Hallo habe es nun mit
memset(MW,0,10);
versucht leider geht das nicht. Wo ist mein Denkfehler?
-
Anfänger09 schrieb:
Hallo habe es nun mit
memset(MW,0,10);
versucht leider geht das nicht. Wo ist mein Denkfehler?
Was heißt "geht leider nicht"? Was genau geht nicht?
Dein Denkfehler ist, dass du mit der 10 wahrscheinlich 10 int-Variablen meinst. Der Parameter muss aber in Bytes angegeben werden. Deine ints sind wahrscheinlich 4 Bytes lang. Ich schätze, dass bei dir nur ein Teil genullt wurde (die ersten beiden ints), richtig? Probier mal so:
memset(&MW,0,sizeof(MW));
Ach ja, das '&', also der Adressoperator, ist wichtig. Sonst dürfte es gar nicht kompilieren. Du musst memset einen Zeiger übergeben!
-
Ja sorry so funktioniert es super
Danke
-
Wäre es nicht - auch in der Folge - einfacher, die zehn int's in einem Array zu speichern?
-
Belli schrieb:
Wäre es nicht - auch in der Folge - einfacher, die zehn int's in einem Array zu speichern?
Darauf wette ich.
-
Arrays und auch Structs kann man auch einfacher mit 0 initialisieren, z.B.
int MW[100]={};