Hilfe bei Verständniss von Strukturen
-
Hallo,
hab mal einen kleinen Code geschrieben um Strukturen besser zu verstehen.
struct name { char vorname[30]; char nname[40]; int alter; }; struct adresse { int plz; char ort[20]; char strasse[20]; int hausnummer; struct name name1; }; int main() { struct name namez; struct adresse adresse; printf("Vorname eingeben: "); fgets(namez.vorname,30,stdin); printf("Nachname eingeben: "); fgets(namez.nname,40,stdin); printf("Alter eingeben: "); scanf("%d", &namez.alter); printf("\n\n%s\n", namez.vorname); printf("%s\n", namez.nname); printf("%d\n", namez.alter); printf("\n %s \n",adresse.name1.vorname); printf("\n %d \n", adresse.name1.alter); }
ich habe hier das Problem, dass bei Zeile 40 ein $ Symbol ausgegeben wird und in Zeile 41 irgendeine Zahl. Komme leider nicht darauf warum das so ist. Ich dachte ich greife erst auf die struct adresse zu, dann auf struct name und dann auf den Vornamen bzw. das Alter.
Wäre nett wenn mir wer helfen könnte.Danke
-
Das ist auch so, aber deine Werte sind uninitialisiert. Es gibt nicht ein struct im Programm. Alle Instanzen sind absolut unabhängig. Du liest etwas in die Felder von namez ein, gibst aber die Felder von adresse.name1 aus.
-
acho... Ich dachte, da der Vorname in struct name schon belegt war, kann ich über struct adresse (und dem darin enthaltenen struct name) darauf zugreifen.
muss ich also wenn ich über struct adresse auf den Vornamen zugreifen will explizit adresse.name1.vorname mit einem Wert belegen?Danke für deine schnelle Hilfe
-
Die struct-Definition (Zeile 1-6) ist ein Förmchen. Damit kannst du so viele Sandkuchen backen, wie du willst. Auch wenn alle diese Kuchen nach dem Backen identisch aussehen, so verändern sich nicht magisch alle anderen Kuchen, wenn du an einem davon eine Änderung vornimmst.