0
votes

Mettre à jour la cellule dans la liste des structures et renvoyer la liste

Je cherche un moyen de mettre à jour une cellule dans une liste des structures. J'ai une liste de struct: xxx

et une fonction qui me permet de mettre à jour une cellule. xxx

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?

c

2 commentaires

insertsUstitute 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.


3 Réponses :


1
votes

Ajouter un nouveau var tout_list code>.

Le 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;
}


0 commentaires

0
votes

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;
}


0 commentaires

0
votes

Essayez ceci: xxx

Lorsque vous appelez cette version de la fonction, vous devez transmettre l'adresse de votre liste.

ou une autre version de l'original: xxx


0 commentaires