J'écris un programme de liste lié de base en C et ayant un peu de problème avec la suppression. Voici ce que j'ai: question n ° 1: strong>
J'ai donc essayé d'écrire: p> mais xcode voulait que je ajoute "&" devant "Node3". Est-il généralement vrai que lorsque je définis une fonction pour prendre un pointeur, je dois passer dans l'adresse mémoire? P> question n ° 2: strong> My La fonction d'impression fonctionne pour imprimer les valeurs de 3 nœuds. Après avoir appelé Supprimer et essayer de supprimer Node3, il imprime toujours les 3 nœuds. Je ne suis pas sûr d'où je me suis trompé. Je trouve le nœud précédant celui que je veux supprimer et définir son prochain pointeur sur le nœud après le nœud après (informellement: nœud.next = nœud.next.next). P> Toutes idées? P> > merci pour l'aide,
bclayman p> p>
4 Réponses :
Essayez simplement de changer actuel = actuel-> suivant-> suivant; code> à
actuel-> suivant = actuel-> suivant-> suivant code>. Laissez-moi savoir si cela ne fonctionne pas. P>
Vous devez le transmettre & node3 code>. Pour supprimer, veuillez changer votre code de
actuel = actuel-> suivant-> suivant; code> à
actuel-> suivant = actuel-> suivant-> suivant; code> p> P>
current->next = current->next->next
est-il généralement vrai que lorsque je définis une fonction pour prendre un pointeur, j'ai besoin de passer l'adresse de la mémoire? p>
Oui, Xcode a raison.
nœud3 code> est un noeud
struct code>, mais votre fonction
supprimer code> prend
structure noeud * code> comme second paramètre, donc vous avez Pour transmettre le pointeur sur
nœud3 code>, pas la variable elle-même. P>
Après avoir appelé supprimé et essayant de supprimer Node3, il imprime toujours les 3 nœuds. P> blockQuote>
il parce que vous ne modifiez pas la valeur de
suivant code>. De plus, pour être en sécurité, n'oubliez pas de vérifier si le pointeur est
null code>: p>
xxx pré> blockQuote>
(1) Oui, Pointeur i> à quelque chose signifie que vous avez besoin de l'adresse de i> quelque chose. (2) Votre fonction Supprimer ne fait rien:
actuel = actuel-> suivant-> suivant; code> ne modifie qu'une variable locale.