Je cherche un moyen de mettre à jour une cellule dans une liste des structures.
J'ai une liste de struct: et une fonction qui me permet de mettre à jour une cellule. P> mon problème est que cette fonction est que cette fonction ne pas renvoyer toute la liste. Comment puis-je procéder pour le faire? P> P>
3 Réponses :
Ajouter un nouveau var Le code tout_list code>. suivant code> pourrait fonctionner: p> struct _list *insertSubstitute(struct _list *list,
int startNode,
unsigned char letter,
int substitute) {
struct _list* whole_list = list;
while (list != NULL) {
if (list -> letter == letter && list -> startNode == startNode) {
list -> substitute = substitute;
break;
}
list = list -> next;
}
return whole_list;
}
Vous devez simplement utiliser un pointeur temporaire sur votre liste pour vérifier les éléments puisque vous utilisez la liste IT IT SO-SO-SO-SOUSE LE PROBLÈME
struct _list *insertSubstitute(struct _list *list, int startNode,
unsigned char letter, int substitute) {
struct _list *temp=list;
while (temp!= NULL) {
if (temp-> letter == letter && temp-> startNode == startNode) {
temp -> substitute = substitute;
break;
}
temp= temp-> next;
}
return list;
}
Essayez ceci: Lorsque vous appelez cette version de la fonction, vous devez transmettre l'adresse de votre liste. p> ou une autre version de l'original: p>
insertsUstitute code> Obtient un pointeur sur une structure, de sorte que vous modifiez la source. Pourquoi voulez-vous le retourner?Changement de votre prototype de fonction de "struct _list *" liste sur "struct _list **", vous ne pouvez pas modifier un pointeur et le renvoyer, mais vous pouvez modifier un pointeur lorsque vous passez un pointeur sur le pointeur, vous devez modifier les références internes. Pour indiquer à '(* liste) ->, si vous le faites, vous pouvez vous débarrasser de la déclaration et modifier la fonction retour à vide.