Problem mit Zeiger auf Struktur
-
#include <stdio.h> struct datum{ unsigned char tag; unsigned char monat; unsigned short jahr; }; struct uhrzeit{ unsigned char stunde; unsigned char minute; unsigned char sekunde; }; struct zeitpunkt{ struct datum date; struct uhrzeit time; } moment; struct zeitpunkt *einlesen(struct zeitpunkt *moment) { printf("Tag eingeben: "); scanf("%d",moment->date.tag); printf("\nMonat eingeben: "); scanf("%d",moment->date.monat); printf("\nJahr eingeben: "); scanf("%d",moment->date.jahr); printf("\n\nStunde eingeben: "); scanf("%d",moment->time.stunde); printf("\nMinute eingeben: "); scanf("%d",moment->time.minute); printf("\nSekunde eingeben: "); scanf("%d",moment->time.sekunde); } int main(void) { struct zeitpunkt moment; einlesen(&moment); }
Sobald ich bei "Tag: " irgendeine Zahl eingebe und {Enter} drücke, stürzt das Programm ab.
Process returned -1073741819 (0xC0000005)
-
mach mal & davor, vielleicht gehts dann.
-
Du returnst der Struktur "einlesen" ja gar nichts...
-
#include <stdio.h> struct datum{ unsigned char tag; unsigned char monat; unsigned short jahr; }; struct uhrzeit{ unsigned char stunde; unsigned char minute; unsigned char sekunde; }; struct zeitpunkt{ struct datum date; struct uhrzeit time; } moment; struct zeitpunkt *einlesen(struct zeitpunkt *moment) { printf("Tag eingeben: "); scanf("%d", &moment->date.tag); printf("\nMonat eingeben: "); scanf("%d", &moment->date.monat); printf("\nJahr eingeben: "); scanf("%d", &moment->date.jahr); printf("\n\nStunde eingeben: "); scanf("%d", &moment->time.stunde); printf("\nMinute eingeben: "); scanf("%d", &moment->time.minute); printf("\nSekunde eingeben: "); scanf("%d", &moment->time.sekunde); } int main(void) { struct zeitpunkt moment; einlesen(&moment); }
scanf nimmt nur Pointer.
-
Danke, läuft