Wo ist der Fehler?



  • struct Angestellter
    {
        char name;
        char position;
        int alter;
        float gehalt;
    };
    
    void Drucken (struct a Person);
    
    int main()
    {
    
        struct Angestellter Person1;
        strcpy(Person1.name,"Mueller, Karl");
        strcpy(Person1.position,"Hilfskraft");
        Person1.alter = 45;
        Person1.gehalt = 2100;
    
        Drucken (Person1);
        return 0;
    }
    
    void Drucken (struct a Person)
    {
        printf("Name      : %s\n",Person.name);
        printf("Alter     : %s\n",Person.alter);
        printf("Gehalt    : %s\n",Person.gehalt);
        printf("Position  : %s\n",Person.position);
    }
    

    Fehler ist: Type of formal paraeter 1 is incomplete
    der Fehler muss bei der übergabe sein aber was ist falsch?

    Mod-Edit: Code-Tags



  • 1. Bitte Code-Tags verwenden

    void Drucken (struct a Person)
    

    Warum? Wer hat dir denn sowas beigebracht?

    Wenn dann schon

    void Drucken (struct Person)
    


  • axels. schrieb:

    Wenn dann schon

    void Drucken (struct Person)
    

    Besser wohl so:

    void Drucken (struct Angestellter Person)
    

    Davon ab, diese strcpys auf ein einzelnes 'char' sind auch Käse. 🙂



  • Das haben wir in der UNI so gelernt.. aber auch wenn ich es änder der Fehler liegt bei dem
    funktion(person1);
    ...
    trotzdem danke!



  • Fricky667 schrieb:

    Besser wohl so:

    void Drucken (struct Angestellter Person)
    

    Danke für die Korrektur, da war ich wohl nicht ganz anwesend...

    Mach mal aus deinen Char-Variablen in der struct jeweils ein Char-Array. Dann dürfte es funktionieren.



  • philippsw schrieb:

    Das haben wir in der UNI so gelernt..

    Soll man schwindeln?



  • axels. schrieb:

    Danke für die Korrektur, da war ich wohl nicht ganz anwesend...

    Keine Ursache. 🙂
    Btw, die struct würde ich lieber als Pointer übergeben. Sonst wird ihr ganzer Inhalt kopiert. Das ist irgendwo doof.



  • Schau Dir mal die Struct an, fällt Dir da nicht etwas auf?
    Das kann nicht funktionieren 🙂

    Hat dein "name" nur einen Buchstaben?

    Es ginge auch noch "char* name" und dann den Speicher dynamisch zuweisen.
    Einfacher ist es aber schon gleich eine Array-Größe zuzuweisen.



  • Hey philipp, ich würde tippen, der Fehler sitzt in disem Fall VOR dem Bildschirm.

    MfG Manfred



  • Der Fehler saß natürlich vor dem Bildschirm! Klammern für das Array vergessen..das kommt davon wenn man Abends noch "auf die schnelle" was programmieren muss für die Uni..danke an alle!!


Anmelden zum Antworten