Strukturen uebergeben
-
Kann man einer Funktion Strukturen uebergeben? Wenn ja wie ?
-
ja! wie eine normale variable auch!
-
hi!
wenn du strukturen übergibst, solltest du das immer mittels pointern machen, da der stack sonst arg belastet wird. außerdem kannst du so die struktur auch manipulieren:
struct a_struct { int member; } test_struct; void my_func (a_struct * para_struct) { para_struct->member = 10; // oder ähnlich }
wichtig ist, dass du beim zugriff auf strukturen per pointer auf die daten mit "->" und nicht mit "." zugreifst. (wenn du die strukturen nicht per pointer übergibst, musst du natürlich den punkt benutzen)
cu todo
-
... siehe "Call by Value" & "Call by Reference"
MfG
-
Original erstellt von todo:
**
wichtig ist, dass du beim zugriff auf strukturen per pointer auf die daten mit "->" und nicht mit "." zugreifst. (wenn du die strukturen nicht per pointer übergibst, musst du natürlich den punkt benutzen)cu todo**
Muss man nicht, man könnte auch klammern setzen:
(*para_struct).member = 10;
-
... ja und es gibt tatsächlich Bücher, in denen das gemacht wird... z.B. 3D Spieleprogrammierung mit DirectX in C/C++ Band II von Stefan Zerbst, da wird teilweise (*struct).var statt struct->var benutzt!
ChrisM
-
Wenn wir schon soweit sind...
Es geht auch noch anders:
para_struct[0].member = 10;
Zur Not lässt sich auch noch das offsetof()-Makro missbrauchen ....
[ Dieser Beitrag wurde am 02.12.2002 um 20:52 Uhr von mady editiert. ]