Ü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!!