IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Problème d'ajout dans une liste


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 22
    Points
    22
    Par défaut Problème d'ajout dans une liste
    Salut à tous,

    j'ai un petit problème avec ma fonction d'ajout dans ma liste, voici mon code, il est très simple et j'ai beau le retourner dans tous les sens, je ne vois pas ce qui cloche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    typedef struct s_list *t_list;
    struct s_list {
      int elem;
      t_list suiv;
    };
     
    t_list ajout(int x, t_list l)
    {
      t_list temp = NULL;
      temp = malloc(sizeof(t_list));
      temp->elem = x;
      temp->suiv = l;
     
      return (temp);
     
    int main()
    {
      t_list l = NULL;
      l = malloc(sizeof(t_list));
     
      ajout(1,l);
      printf("%i\n", l->elem);
      exit (0);
    }
    Donc pour l'instant pour tester, je n'ai ajouté qu'un seul élément mais ça me retourne 0 à chaque fois. Alors si quelqu'un voit d'où vient l'erreur, merci !

  2. #2
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284
    Par défaut
    Ta fonction d'ajout ne modifie pas la liste en entrée mais retourne une nouvelle liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    int main()
    {
      t_list l = malloc(sizeof(t_list));
      t_list l2 =ajout(1,l);
    
      printf("%i\n", l2->elem);
      exit (0);
    }
    ensuite il faut faire attention a l'initialisation de ta liste, l->suiv pointe sur n'importe quoi dans la première liste.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Ah oui d'accord !
    Merci beaucoup

    Par contre je suis sûr qu'il y a un moyen plus simple et plus "beau" que de créer une autre liste à chaque fois qu'on veut ajouter un élément.
    Si j'ai bien compris, il suffirait que j'initialise ma première liste et dans ce cas là je pourrais n'utiliser qu'une seule liste non ?

  4. #4
    Membre expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Points : 3 284
    Points
    3 284

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 48
    Points : 22
    Points
    22
    Par défaut
    Merci pour le lien, il est bien complet. La prochaine fois j'irai voir du côté des tutos avant de poster sur le forum, autant pour moi.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CSS] Problème d'espaces dans une liste
    Par sylsau dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 03/08/2006, 13h46
  2. Ajout dans une liste déroulante
    Par auriolbeach dans le forum Access
    Réponses: 5
    Dernier message: 16/02/2006, 05h37
  3. Ajout dans une liste avec un bouton
    Par Invité dans le forum Access
    Réponses: 6
    Dernier message: 07/12/2005, 08h27
  4. Ajout dans une liste/vérification
    Par illight dans le forum Access
    Réponses: 1
    Dernier message: 11/10/2005, 17h12
  5. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo