C-Übung 9
Strukturen, Unions, Typdefinitionen,
Allokieren und Freigeben von Speicherplatz


  1. Erstelle für nachfolgende Funktionen die entsprechenden Vorwärtsdeklarationen und „leeren“ Definitionen und rufe die „leeren“ Funktionen meineStrukturen(), meineTypdefinitionen() und meineUnions() in der Funktion main() auf:

    void main(void);

    void meineStrukturen(void);
    void meineTypdefinitionen(void);
    void meineUnions(void);

  2. Erstelle nachfolgende Struktur mit dem Namen PERSON:

    Datentyp

    Name

    char [25]

    name

    char [25]

    vorname

    int

    alter

    double

    groesse

    double

    gewicht

  3. Ergänze die Funktion meineStrukturen() folgenderweiser :

    - Definiere das Objekt familienglied vom Strukur-Typ PERSON
    - Definiere das Objekt bruder vom Strukur-Typ PERSON
    - Definiere das Objekt schwester vom Strukur-Typ PERSON
    - Setze die Eigenschaft alter des Objektes familienglied auf den Wert 12
    - Setze die Eigenschaft alter des Objektes schwester auf den Wert 13
    - Setze die Eigenschaft alter des Objektes bruder auf den Wert 7
    - Setze die Eigenschaft gewicht des Objektes bruder auf den Wert 35,4
    - Setze die Eigenschaft name des Objektes bruder auf den Wert “Martin“
    - Gib obige Eigenschaften mittels der Funktion printf() an den Benutzer aus.

  4. Erstelle nachfolgende Union mit dem Namen ORT:

    Datentyp

    Name

    int

    hausnummer_eins

    int

    hausnummer_zwei

    int

    hausnummer_drei

  5. Ergänze die Funktion meineUnions() in dieser Reihenfolge :

    - Definiere das Objekt Wien vom Union-Typ ORT
    - Setze die Eigenschaft hausnummer_eins des Objektes Wien auf den Wert 1
    - Gib die Eigenschaften hausnummer_eins des Objektes Wien mittels der Funktion printf() an den Benutzer aus.
    - Setze die Eigenschaft hausnummer_zwei des Objektes Wien auf den Wert 2
    - Gib die Eigenschaften hausnummer_eins des Objektes Wien mittels der Funktion printf() an den Benutzer aus.
    - Setze die Eigenschaft hausnummer_drei des Objektes Wien auf den Wert 3
    - Gib die Eigenschaften hausnummer_eins des Objektes Wien mittels der Funktion printf() an den Benutzer aus.

  6. Erstelle nachfolgenden Struktur-Datentyp mit dem Namen schueler:

    Datentyp

    Name

    char [25]

    famname

    char [25]

    vorname

    int

    katalognummer

  7. Ergänze die Funktion meineTypdefinitionen() folgenderweise:

    - Definiere das Objekt willy vom Datentyp schueler
    - Setze die Eigenschaft katalognummer des Objektes willy auf den Wert 22
    - Gib die Eigenschaften katalognummer des Objektes willy mittels der Funktion printf() an den Benutzer aus.

  8. Erstelle nachfolgenden Union-Datentyp mit dem Namen ort:

    Datentyp

    Name

    int

    hausnummer_eins

    int

    hausnummer_zwei

    int

    hausnummer_drei

  9. Ergänze die Funktion meineTypdefinitionen() folgenderweise:

    - Definiere das Objekt Hamburg vom Datentyp ort
    - Setze die Eigenschaft hausnummer_eins des Objektes Hamburg auf den Wert 1
    - Gib die Eigenschaften hausnummer_eins des Objektes Hamburg mittels der Funktion printf() an den Benutzer aus.
    - Setze die Eigenschaft hausnummer_zwei des Objektes Hamburg auf den Wert 2
    - Gib die Eigenschaften hausnummer_eins des Objektes Hamburg mittels der Funktion printf() an den Benutzer aus.
    - Setze die Eigenschaft hausnummer_drei des Objektes Hamburg auf den Wert 3
    - Gib die Eigenschaften hausnummer_eins des Objektes Hamburg mittels der Funktion printf() an den Benutzer aus.

  10. Erstelle nachfolgenden Struktur-Datentyp mit dem Namen schueler_ptr:

    Datentyp

    Name

    char *

    famname

    char *

    vorname

    int *

    katalognummer

  11. Ergänze die Funktion meineTypdefinitionen() folgenderweise:

    - Definiere das Objekt hugo vom Datentyp schueler_ptr
    - Ordne der Eigenschaft famname des Objektes hugo einen Speicherplatz von 25 Bytes zu.
    - Ordne der Eigenschaft vorname des Objektes hugo einen Speicherplatz von 25 Bytes zu.
    - Ordne der Eigenschaft katalognummer des Objektes hugo den entsprechenden Speicherplatz zu.
    - Setze die Eigenschaft famname des Objektes hugo auf den Wert “Mayer“
    - Setze die Eigenschaft vorname des Objektes hugo auf den Wert “hugo“
    - Setze die Eigenschaft katalognummer des Objektes hugo auf den Wert 1
    - Gib obige Eigenschaften mittels der Funktion printf() an den Benutzer aus.
    - Gib von der Eigenschaft famname des Objekts hugo den Speicherplatz frei
    - Gib von der Eigenschaft vorname des Objekts hugo den Speicherplatz frei
    - Gib von der Eigenschaft katalognummer des Objekts hugo den Speicherplatz frei