11.6 Arrays aus Funktionen zurückgeben
Arrays können nicht als Rückgabetyp von Funktionen definiert werden. Auch dazu bedienen wir uns des bekannten Tricks, Arrays in eine Struktur zu verpacken. Hierzu ein Listing zur Demonstration:
/* array12.c */ #include <stdio.h> #include <stdlib.h> struct array{ int wert[3]; }; struct array init_array(void) { int i; struct array z; for(i = 0; i < sizeof(struct array) / sizeof(int); i++) { printf("Wert %d eingeben: ",i); scanf("%d",&z.wert[i]); } return z; } void output_array(struct array z) { int i; for(i = 0; i < sizeof(struct array) / sizeof(int); i++) printf("%d\t", z.wert[i]); printf("\n"); } int main(void) { struct array new_array; /* Array als Rückgabewert in einer Struktur verschachtelt */ new_array=init_array(); /* call-by-value */ output_array(new_array); return EXIT_SUCCESS; }
Die letzten beiden Listings dürften einen Programmierneuling ein wenig verwirrt haben, da zur Demonstration Strukturen verwendet wurden, die erst später in Kapitel 15 behandelt werden.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.