Ein Array mit hilfe von Zeigern füllen?
-
Hi,
ich habe meinem struct in main ein Array mit 3 Elemente gegeben und blicke nicht wie ich diese mit hilfe von Zeigern in meiner "f" Funktion füllen kann?
Ich habe versucht dem Zeiger eine Variable [i] zu geben um dann mit einer for Schleife das Array zu füllen das hat aber nicht geklappt.
#include <stdio.h> #include <stdlib.h> #include <conio.h> struct employee { char firstname[10]; char name[10]; int birthday; }; int f(struct employee*); int print(struct employee*); int main() { struct employee person[3]; f(person); getch(); return 0; } int f(struct employee *z) { printf("Name eingeben: \n"); scanf("%s", z->firstname); printf("Nachname eingeben: \n"); scanf("%s", z->name); printf("Alter eingeben: \n"); scanf("%d", &(z->birthday)); print(z); } int print(struct employee *z) { printf("%s\n", z->firstname); printf("%s\n", z->name); printf("%d\n", z->birthday); }
-
Hi,
int input(struct employee *z, unsigned n) { /* Hier noch ne Schleife und Anweisungen einbauen. z[i].firstname z[i].name &z[i].birthday */ } int print(struct employee *z, unsigned n) { /* Hier noch in eine Schleife verpacken. z[i].firstname z[i].name z[i].birthday */ }
reicht das als Hinweis?
Gruß,
B.B.
-
Für was ist das unsigned n?
-
ITzEmir schrieb:
Für was ist das unsigned n?
Kann nicht negativ werden, dafür aber doppelt so groß.
-
ITzEmir schrieb:
Für was ist das unsigned n?
Das ist die Anzahl der Strukturen, die du übergibst.
int input(struct employee *z, unsigned n) { unsigned i=0; while(i<n) { //... i++; } }
-
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include "Utilities.h" struct employee { char firstname[10]; char name[10]; int birthday; }; int f(struct employee*); int print(struct employee*); int main() { struct employee person[3]; f(person); getch(); return 0; } int f(struct employee *z, unsigned n) { int i; for(i=0; i<3; i++) { z[i].firstname; z[i].name; &z[i].birthday; printf("Name eingeben: \n"); scanf("%s", z->firstname); printf("Nachname eingeben: \n"); scanf("%s", z->name); printf("Alter eingeben: \n"); scanf("%d", &(z->birthday)); _clrscr(); } print(z); } int print(struct employee *z, unsigned n) { int i; for(i=0; i<3; i++) { z[i].firstname; z[i].name; z[i].birthday; printf("%s\n", z->firstname); printf("%s\n", z->name); printf("%d\n", z->birthday); } }
Ok so sieht mein code jetzt aus. Die Printfunktion klappt immer noch nicht? Achso noch eine frage zu:
z[i].firstname; z[i].name; z[i].birthday;
gibst du hier dem Zeiger ein Array? Ich blicks noch nicht ganz^^
-
Was muss ich der Print als Parameter geben damit sie nicht nur das letzte 3 mal ausgibt was ich eingegeben habe sondern alles?
-
ITzEmir schrieb:
Ok so sieht mein code jetzt aus. Die Printfunktion klappt immer noch nicht? Achso noch eine frage zu:
z[i].firstname; z[i].name; z[i].birthday;
gibst du hier dem Zeiger ein Array? Ich blicks noch nicht ganz^^
Die Variablen sollst du benutzen, nicht einfach so ungenutzt stehen lassen, ne.
Musst du also noch in deine printf und scanf Funktionen einbauen.