Übergabe eines Zeigers auf eine Struktur



  • hallo,

    hab folgendes programm geschrieben, jedoch bekomme ich immer eine fehlermeldung und 2 warnungen, finde aber leider selber den fehler nicht. ist der funktionsprototyp so in ordnung?

    #include <stdio.h>
    
    void ausgabe(struct);
    
    struct pkw{
    				float geschwindigkeit;
    				int leistung;
    				int zylinder;
    				char kraftstoff;
    
    				}mercedes = {195.0, 125, 8, 'S'};
    
    void main()
    
    {
    
    struct pkw *p;
    p = &mercedes;
    
    ausgabe(p); /*error C2115: 'function' : Inkompatible Typen warning C4024: 'ausgabe' : Unterschiedliche Typen fuer formalen und uebergebenen Parameter 1 */
    
    }
    
    void ausgabe(struct pkw *p)
    
    {  //warning C4028: Formaler Parameter 1 unterscheidet sich von der Deklaration
    
    printf("%g\n\n", p->geschwindigkeit);
    printf("%i\n\n", p->leistung);
    printf("%i\n\n", p->zylinder);
    printf("%c\n\n", p->kraftstoff);
    
    }
    


  • lol, hab grade fehler selber gefunden. funktionsprototyp muss

    void ausgabe(struct pkw*);
    

    lauten. stimmt das so?



  • Yepp. 😃



  • Wenn du schon einen Funktions-Prototyp angibst, mußt du auch den richtigen Parametertyp dort angeben - die Angabe void ausgabe(struct); ist Unsinn.

    Richtig müsste es so aussehen:

    struct pkw{...};
    
    void ausgabe(struct pkw*);
    

    Edit: war wohl zu langsam 😉



  • okay danke!!


Anmelden zum Antworten