Problem mit strukturoperator
-
Hi
ich hab folgendes Problem:#include <stdio.h> struct a{int x; char b[20];} y[10]; lala(struct a * y){ scanf("%s",y[7]->b); } main(){ lala(&y); }
Vielleicht könnt ihr mir sagen warum die scanf-Zeile falsch ist.
Ich komm einfach nicht drauf ich hab alles ausprobiert.
thx
-
Du definierst ein Array von 10 Strukturen.
Die Funktion erwartet einen Pointer auf eine Struktur a oder eben ein Array von a.
Also musst du auch so etwas übergeben (ohne &).Weiterhin dereferenzierst du in lala durch y[7] ja schon deinen Pointer(bzw. Array) also benötigst du nicht -> sonder .
void lala(struct a *y) { scanf("%s",y[7].b); } int main() { lala(y); }
-
#include <stdio.h> struct a { int x; char b[20]; } y[10]; lala(struct a *y) { scanf("%s",y[7].b); } o lala(struct a *y) { scanf("%s",(y+7)->b); }
-
@Seppschrot
mir geht es ja ums prinzip wie ich sowas mache die 7 war nur nen beispiel ausserdem will ich die struktur verändern also by referenceund nicht nur die kopie (by value).
@leo aka qsch
wenn das auch so funktioniert wozu braucht man dann überhaupt nen strukturoperator?
-
mxpower schrieb:
@Seppschrot
mir geht es ja ums prinzip wie ich sowas mache die 7 war nur nen beispiel ausserdem will ich die struktur verändern also by referenceund nicht nur die kopie (by value).Arrays werden automatisch als Adresse übergeben.
Probier´s aus.