//gcc -Wall aufgabe1.c -o aufgabe1 #include #include struct bewohner { //Der Name char *name; //Das alter int alter; //Das Geschlecht: 0=Mann, 1=Frau int geschlecht; }; struct haus { //Ein Vektor von Zeigern auf die Bewohner struct bewohner **bew; //Die Postleitzahl int plz; //Die Strasse char *strasse; //Die Hausnummer int nummer; }; int main( int argc, char **argv ) { //Haus "bauen" // => Platz fuer 1 Struktur vom Typ haus reservieren struct haus *kleines_haus = (struct haus *) calloc( 1, sizeof(struct haus) ); //Haus hat Platz fuer 2 Bewohner! // => Vektor von Zeigern auf Bewohner => Speicher fuer 2 Zeiger auf Bewohner kleines_haus->bew = (struct bewohner **) calloc( 2, sizeof(struct bewohner*) ); kleines_haus->strasse = "Hauptstr."; kleines_haus->plz = 89073; kleines_haus->nummer = 1; //Beide Bewohner erzeugen // => Jeweils Platz fuer 1 Struktur vom Typ bewohner reservieren kleines_haus->bew[0] = (struct bewohner *) calloc( 1, sizeof(struct bewohner) ); kleines_haus->bew[1] = (struct bewohner *) calloc( 1, sizeof(struct bewohner) ); //Bewohner beschreiben kleines_haus->bew[0]->name = "Hans"; kleines_haus->bew[0]->alter = 25; kleines_haus->bew[0]->geschlecht = 0; kleines_haus->bew[1]->name = "Maria"; kleines_haus->bew[1]->alter = 23; kleines_haus->bew[1]->geschlecht = 1; printf("name: %s, alter: %d, geschlecht: %d\n", kleines_haus->bew[0]->name, kleines_haus->bew[0]->alter, kleines_haus->bew[0]->geschlecht ); printf("name: %s, alter: %d, geschlecht: %d\n", kleines_haus->bew[1]->name, kleines_haus->bew[1]->alter, kleines_haus->bew[1]->geschlecht ); return 0; }