0
votes

Hey! J'essaie d'essayer toutes les possibilités avec des listes liées en C, mais lorsque j'essaie de supprimer le premier article (pop), je continue à obtenir une erreur

Voici mon code et le problème est avec la fonction pop code>

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>

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);
      ^~~~~~
      &


0 commentaires

3 Réponses :


0
votes

Étant donné que votre fonction pop () code> prend un pointeur sur un pointeur em>, vous devez passer une comme telle:

pop(&header);


0 commentaires

0
votes

Le problème est que vous passez un nœud * à POP fonction accepte nœud ** , il vous suffit de passer & Header Pour le faire fonctionner.

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.


0 commentaires

1
votes
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).

0 commentaires