Passer la structure comme pointeur

J’essaie de passer la structure en tant que pointeur dans les arguments de fonction. Voici mon code

#include  #include  #include  typedef struct { int yearOfManufacture; char model[50]; bool gasoline; } Car; void PrintCarDetails(Car details); int main (int argc, const char * argv[]) { Car ford; ford.yearOfManufacture = 1997; ford.gasoline = true; strcpy(ford.model, "Focus"); PrintCarDetails(&ford); return 0; } void PrintCarDetails(Car *details) { printf("Car model %s", details->model); } 

Je reçois une erreur “Passage de voiture au paramètre de type incompatible Car. Qu’est-ce qui me manque?

La déclaration à terme doit être:

 void PrintCarDetails(Car * details); 
 annuler PrintCarDetails (Car * details); 

  * 

est manquant dans la déclaration suivante.

La définition de la fonction diffère de la déclaration de la fonction. Dans la déclaration, vous indiquez qu’une structure de voiture doit être utilisée comme argument, mais dans la définition, vous souhaitez un pointeur sur une structure de voiture.

Vous avez probablement mal déclaré la déclaration de la fonction PrintCarDetails. Devrait être:

 void PrintCarDetails(Car *details); 

travaille ici

C’est juste une petite erreur, votre définition de fonction et votre déclaration ne correspondent pas:

  • ligne 12: void PrintCarDetails(Car details);
  • ligne 26: void PrintCarDetails(Car *details);

fixez simplement la ligne 12 avec: void PrintCarDetails(Car *details);