/***************************************************************/ /* Prof. Dr. Carsten Vogt */ /* FH Koeln, Fak. 07 / Nachrichtentechnik */ /* http://www.nt.fh-koeln.de/vogt */ /* */ /* Loesung der Uebungsaufgabe Kapitel 5, Nr. 4 */ /* aus "C fuer Java-Programmierer", Hanser-Verlag */ /***************************************************************/ #include int main(void) { typedef struct { char name[41]; int personalnummer; float gehalt; } angestellten_info; int i, j, weiter; angestellten_info *ang_info_zeigerfeld[10]; for (j=0;j<10;j++) ang_info_zeigerfeld[j] = NULL; do { do { printf("\nBitte Index zwischen 0 und 9 eingeben: "); scanf("%d",&i); } while (i<0 || i>9); printf("\n"); if (ang_info_zeigerfeld[i]==NULL) { ang_info_zeigerfeld[i] = (angestellten_info *) malloc(sizeof(angestellten_info)); printf("Name: "); scanf("%s",ang_info_zeigerfeld[i]->name); printf("Personalnummer: "); scanf("%d",&ang_info_zeigerfeld[i]->personalnummer); printf("Gehalt: "); scanf("%f",&ang_info_zeigerfeld[i]->gehalt); } else { free(ang_info_zeigerfeld[i]); ang_info_zeigerfeld[i] = NULL; } printf("\n"); for (j=0;j<10;j++) if (ang_info_zeigerfeld[j]==NULL) printf("%d: NULL\n",j); else printf("%d: %s %d %.2f\n",j,ang_info_zeigerfeld[j]->name,ang_info_zeigerfeld[j]->personalnummer,ang_info_zeigerfeld[j]->gehalt); printf("\n\n0 fuer Programmende, 1 fuer Fortsetzung: "); scanf("%d",&weiter); } while (weiter); return 0; }