Pointer auf Struktur übergeben
-
Hallo,
ich bin noch Anfänger in C und hab auch schon überall gesucht aber nichts wirklich brauchbares gefunden.
Also mein Problem ist ich habe eine Struktur:
struct Person{
char *vorname;
char *nachname;
int alter;
int gebJahr;
}und diese Funktion:
void AddPerson(int *count, struct Person **p);
in meinen Main Programm sieht es so aus:
int main(void)
{
struct Person *p;
int count=0;
AddPerson(&count, *p);
return 0;
}Ich wollte es so übergeben aber der Compiler gibt mir folgende zwei Fehlermeldungen:
error: incompatible type for argument 2 of 'AddPerson'
note: expected 'struct Person **' but argument is of type 'struct Person'ich hoffe jemand kann mir helfen
-
Denozone schrieb:
Hallo,
ich bin noch Anfänger in C und hab auch schon überall gesucht aber nichts wirklich brauchbares gefunden.
Also mein Problem ist ich habe eine Struktur:
struct Person{ char *vorname; char *nachname; int alter; int gebJahr; }
und diese Funktion:
void AddPerson(int *count, struct Person **p);
in meinen Main Programm sieht es so aus:
int main(void) { struct Person *p; int count=0; AddPerson(&count, *p); return 0; }
Ich wollte es so übergeben aber der Compiler gibt mir folgende zwei Fehlermeldungen:
error: incompatible type for argument 2 of 'AddPerson'
note: expected 'struct Person **' but argument is of type 'struct Person'ich hoffe jemand kann mir helfen
struct Person **p definiert einen Zeiger auf einen Zeiger der auf eine struct zeigt.
Durch den * bei *p in AddPerson(&count, *p); dereferenzierst du den Zeiger, d.h. du bekommst den Inhalt.
Du brauchst aber die Adresse von p. Die gibt es mit &.AddPerson(&count,&p);
-
Danke jetzt hats geklappt