Voici mon code et le problème est avec la fonction dans ce programme, je crée simplement une liste liée, avec deux valeurs, 1 et 2. Puis je suis simplement imprimé La liste, puis j'imprime à nouveau, mais après avoir exécuté la fonction pop. Cependant, je continue à courir dans cet avertissement / erreur. J'apprécierais vraiment si vous pouviez aider. P> pop code>
warning: incompatible pointer types passing 'node *' (aka 'struct node *') to parameter of type
'node **' (aka 'struct node **'); take the address with & [-Wincompatible-pointer-types]
pop(header);
^~~~~~
&
3 Réponses :
Étant donné que votre fonction pop () code> prend un pointeur sur un pointeur em>, vous devez passer une comme telle:
pop(&header);
Le problème est que vous passez un Ces minuscules erreurs peuvent être évitées lors de l'utilisation de l'analyseur statique, il met immédiatement en évidence le code problématique. P> nœud * code> à
POP code> fonction accepte
nœud ** code>, il vous suffit de passer
& Header Code> Pour le faire fonctionner. P>
warning: incompatible pointer types passing 'node *' (aka 'struct node *') to parameter of type 'node **' (aka 'struct node **'); take the address with & [-Wincompatible-pointer-types] pop(header); ^~~~~~ & Your compiler error explains everything. The function int pop(node** header) accepts address of a pointer of type node as its argument and you are just sending the value of header which is a pointer to the location allocation by malloc.So, change pop(header) to pop(&header).