Partage
  • Partager sur Facebook
  • Partager sur Twitter

Liste chaîné

Problème d'insercion de node

Sujet résolu
    7 décembre 2019 à 13:49:27

    Bonjour à tous !

    En se moment je travaille sur les listes chaîné pour faire un programme pour ranger des nombre. Je voulais commencer en mettant tous les nombres donné en paramètre dans une liste chaîné, mais bon, je suis pas très habille avec ça...

    Voici un aperçus de mon code:

    D'abord j'ai une structure node_t:
    typedef struct node
    {
        int nbr;
        struct node *next;
    }node_t;

    Puis j'initialise ma liste à NULL:

    node_t *l_a = NULL;

    Et pour remplire ma liste je fais comme ça:

    int fill_list_int(node_t *head, int n_arg, char *v_arg[])
    {
        for (int i = 1; i < n_arg; i++) {
            if (add_new_node(my_getnbr(v_arg[i]), head) == 84)
                return 84;
        }
        return 0;
    }
    int add_new_node(int val, node_t *head)
    {
        node_t *current = head;
    
        for (; current != NULL; current = current->next);
        current = malloc(sizeof(node_t));
        if (current == NULL)
            return 84;
        current->nbr = val;
        current->next = NULL;
        return 0;
    }

    Mais le problème est que ca ne rempli pas ma liste, elle reste NULL. Et lors de l'initialisation je ne veu pas malloc car cela créé un premier node avec nbr = 0, ce que je cherche à faire c'est pouvoir laissé ma liste a NULL si elle n'a pas d'argument à prendre en compte.

    Es-ce-que quelqu'un pourrai m'aider svp.

    D'ici là je vous souhaites une bonne journée !

    • Partager sur Facebook
    • Partager sur Twitter
    Les MEUPORG sont dangereux pour l'avenir de la France, les jv contrôle l'esprit de nos enfant les poussant a faire des atrocités, RENVERSONS L EMPIRE DU JEUX VIDEO ET DU MANGA, EMPIRE MAL SAINT, ET QUE LES SYNCHROS SAINTS LIVRES ET ROMAN DU 18eme DOMINENT LE MONDE !
      7 décembre 2019 à 14:03:43

      Bonjour ! Dans la ligne 4 de 'fill_list_int', tu dis de créer un nouvel élément et de l'attacher à 'head', c'est bien ça ? Mais 'head' ne varie pas. Il me semble qu'il devrait s'« incrémenter » (chaque fois qu'un élément est ajouté à la liste, 'head' doit devenir égal à ce nouvel élément, non ?)

      -
      Edité par robun 7 décembre 2019 à 14:04:24

      • Partager sur Facebook
      • Partager sur Twitter
        7 décembre 2019 à 14:11:15

        Salut !

        Merci de ta réponce, je vois ce que tu veux dire, mais vu que j'envoi des pointeurs normalement je ne devrait pas à avoir a retourner la valeur de la liste chainé non ? et si je fait de la sorte, je ne sais pas quoi retourner dans mon add_new_node... Mais en tous cas merci de ta raiponce !

        -
        Edité par Frautch 7 décembre 2019 à 14:42:58

        • Partager sur Facebook
        • Partager sur Twitter
        Les MEUPORG sont dangereux pour l'avenir de la France, les jv contrôle l'esprit de nos enfant les poussant a faire des atrocités, RENVERSONS L EMPIRE DU JEUX VIDEO ET DU MANGA, EMPIRE MAL SAINT, ET QUE LES SYNCHROS SAINTS LIVRES ET ROMAN DU 18eme DOMINENT LE MONDE !
          7 décembre 2019 à 14:42:24

          a

          -
          Edité par Chépa 7 décembre 2019 à 14:42:47

          • Partager sur Facebook
          • Partager sur Twitter
            7 décembre 2019 à 15:22:41

            Il faut déjà commencer par le commencement : La fonction add_new_node. 

            Elle est fermée sur elle même, C'est à dire qu"au sortir de la fonction le pointeur l_a vaut toujours NULL et n'a donc pas accès à ta liste. La cause de cela c'est que les paramètres de fonction sont passé par copie, donc ta fonction travail sur une copie du pointeur mais pas sur le pointeur passé en paramètre qui lui reste inchangé.

            PS : Tu aurais du tester cette fonction avant de l'utiliser dans une autre, ça rendrait ton code plus facile à débuguer. 

            -
            Edité par rouloude 7 décembre 2019 à 15:25:47

            • Partager sur Facebook
            • Partager sur Twitter
              7 décembre 2019 à 15:28:51

              Salut !

              merci de ta raiponce, c'est fix maintenant.

              Bonne journée

              • Partager sur Facebook
              • Partager sur Twitter
              Les MEUPORG sont dangereux pour l'avenir de la France, les jv contrôle l'esprit de nos enfant les poussant a faire des atrocités, RENVERSONS L EMPIRE DU JEUX VIDEO ET DU MANGA, EMPIRE MAL SAINT, ET QUE LES SYNCHROS SAINTS LIVRES ET ROMAN DU 18eme DOMINENT LE MONDE !

              Liste chaîné

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown