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éclaration liste chainée


Sujet :

C

  1. #21
    Membre émérite
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Points : 2 601
    Points
    2 601
    Par défaut
    Citation Envoyé par mido1951 Voir le message
    [...]
    désolé pour mes msgs parce que je ne suis pas assez fort en liste chainée.
    merci
    Bonjour,
    tout dépend aussi pourquoi tu fais ce que tu fais. Si c'est un exercice pour apprendre les listes chaînées ou si c'est autre chose. Si c'est autre chose, il n'y a pas de honte,bien au contraire, à ne pas réinventer la roue carrée et utiliser des bibliothèques externes.
    Par exemple, mais c'en est une parmi d'autres : la GLib2. C'est une bibliothèque qui propose des structures de données classiques avec tout ce qu'il faut pour les manipuler. Elle sert entre autre de fondation à la bibliothèque Gtk+ et d'autres.
    En ce qui te concerne, elle propose des sdd comme les listes chaînées simple et double, des tableaux croissant dynamiquement, des tables de hachage, … → Glib Data Type.

    Il y a aussi la bibliothèque APR (Apache Portable Runtime), les modules GNULIB qui ne forment pas à proprement parler une bibliothèque mais qui mettent des sources à disposition, …

  2. #22
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    merci.
    je suis entrain de créer un gros projet ce n'est pas un exercice.
    j'ai juste besoin d'introduire la liste chainée dans une place et voila. c'est ce que je cherche.
    MERCI

  3. #23
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Pour moi, le meilleur moyen de faire une fonction qui ajoute à une liste simplement chaînée est de lui passer le pointeur par pointeur:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void ajoute(pos_id_chained_t **ppListe, char const *id, int pos);
     
    ...
     
    ajoute(&TThash[index].positions, "blabla", 42);
    pourquoi ne pas utiliser un seul pointeur?
    de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void ajoute(pos_id_chained_t *ppListe, char const *id, int pos);
     
    ...
     
    ajoute(TThash[index].positions, "blabla", 42);
    [/QUOTE]
    [/CODE]

  4. #24
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Parce si tu ne peux pas modifier le premier pointeur, comment ajoutes-tu le premier élément à une liste vide?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #25
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    j'ai crée une fonction ajoute dans la liste de cette façon:
    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
     
    pos_id_chained_t * ajoute(pos_id_chained_t *ppListe, char const *id, int pos)
    {
                pos_id_chained_t * newelem= malloc(sizeof(pos_id_chained_t));
                strcpy(newelem->id,id);
                newelem->pos=pos;
                newelem->next = NULL;
     
            if(ppListe == NULL)
            {
                return newelem;
            }
            else
            {
                pos_id_chained_t * temp=ppListe;
                while(temp->next != NULL)
                {
                  temp= temp->next;
                }
                temp->next=newelem;
                return ppListe;
            }
    }
    maintenant dans le main je dois faire quoi?
    j'ai fait un main de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Thash* TThash;
         TThash=CreerTableHash(20000);
     
     
                 TThash[j].Kmer=Kmer;
                 TThash[j].hashvalue=Value;
                 TThash[j].positions= ajoute(TThash[j].positions,sequence1,1000); // comment j'ajoute ici? je dois creer une variable de type liste chainée?                
                 printf("TThash[%d].Kmer= %s \n",j,TThash[j].Kmer);
                 printf("TThash[%d].hashvalue= %d \n",j,TThash[j].hashvalue);
    Merci

  6. #26
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Attention, n'appelle pas la variable "ppListe" s'il n'y a qu'un seul niveau de pointeur!
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #27
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Attention, n'appelle pas la variable "ppListe" s'il n'y a qu'un seul niveau de pointeur!
    j'ai changé ma variable en "pListe".
    mais le programme ne marche pas voici mon prog.
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
     
    typedef struct pos_id_chained
    {
        char* id;
        int pos;
        struct pos_id_chained * next;
    } pos_id_chained_t;
     
    typedef struct {
        char* Kmer;
        uint32_t hashvalue;
        struct pos_id_chained * positions;
    }Thash;
     
     
    Thash* CreerTableHash(size_t nbEntrees)
    {
    	Thash def = {NULL, 0, NULL};
    	size_t i;
    	Thash* TThash = malloc(nbEntrees * sizeof(Thash));
    	if(TThash == NULL)
    		return NULL;
     
    	for(i=0 ; i<nbEntrees ; i++)
    		TThash[i] = def;
    	return TThash;
    }
     
    pos_id_chained_t * ajoute(pos_id_chained_t *pListe, char const *id, int pos)
    {
                pos_id_chained_t * newelem= malloc(sizeof(pos_id_chained_t));
                strcpy(newelem->id,id);
                newelem->pos=pos;
                newelem->next = NULL;
     
            if(pListe == NULL)
            {
                return newelem;
            }
            else
            {
                pos_id_chained_t * temp=pListe;
                while(temp->next != NULL)
                {
                  temp= temp->next;
                }
                temp->next=newelem;
                return pListe;
            }
    }
     
    void display ( pos_id_chained_t *p_head)
    {
       pos_id_chained_t *p = p_head;
     
       while (p != NULL)
       {
          /* afficher les données courantes */
          printf ("sequence:  %s \n", p->id);
            printf("position:  %d \n", p->pos);
          /* pointer sur le suivant */
          p = p->next;
       }
       /* afficher la fin */
       printf ("NIL\n");
    }
    int main()
    {
                 int k=3;int i=0;int j=0;
    char *sequence = NULL;
         sequence = malloc(sizeof(char) * 200000);int TAILLE_MAX=200001;
         char *Kmer = NULL;
         Kmer = malloc(sizeof(char) * k);
     int longseq=0; int nbKmer=0;
     
     
         Thash* TThash;
         TThash=CreerTableHash(20000);
     
             while(fgets(sequence,TAILLE_MAX, fichier1)!= NULL)
            {
                nbKmer=0;
            longseq=strlen(sequence)-1; printf("\nlongeur= %d\n", longseq);
     
             if(sequence[0]!='>' && strlen(sequence)>50)
            {
     
               for(i=0;i<=longseq-k;i++)
               {
                    nbKmer++;
                strncpy(Kmer,sequence+i,k);
     
                    Value= hash(Kmer);
                 TThash[j].Kmer=Kmer;
                 TThash[j].hashvalue=Value;
                 TThash[j].positions= ajoute(TThash[j].positions,sequence1,1000);
     
                 printf("TThash[%d].Kmer= %s \n",j,TThash[j].Kmer);
                 printf("TThash[%d].hashvalue= %d \n",j,TThash[j].hashvalue);
                 display(TThash[j].positions);
     
                  j++;
                }
                 printf("\n%d",nbKmer);
             }
             }
    	if (fichier == NULL)
    	 {		
    		printf("File not found"); //      perror(msg);
    	 }
     
        return 0;
    }
    bon les autres variables sont des variables déclarées deja.
    Mais lorsque je stocke la première valeur dans le TThash[0] avec j=0 il ne veut pas avancer. et il sort de la boucle for(i=0;i<=longseq-k;i++) alors qu'il y a encore du travail a faire dans la boucle i.
    est-ce que vous avec des suggestions?
    MERci

  8. #28
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                pos_id_chained_t * newelem= malloc(sizeof(pos_id_chained_t));
                strcpy(newelem->id,id);
    Boum!
    newelem->id n'est pas alloué, ni même initialisé. Tu dois l'initialiser avec la valeur malloc(strlen(id)+1)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #29
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    bonjour,
    j'ai changé mon idée de départ.
    je veux créer une structure dans une structure et ajouter une liste chainée et dans cette sous-structure.
    La première colonne de la matrice est hashvalue et les autres colonnes sont Id_Pos.
    voici ma liste et les structures:
    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
    25
    26
    27
    28
    29
    30
    31
    32
    typedef struct {
     
        char* id;
         struct pos_id_chained * positions;
    }IdThash;
     
    typedef struct pos_id_chained
    {
        int pos;
        struct pos_id_chained * next;
    } pos_id_chained_t;
     
    typedef struct {
         uint32_t hashvalue;
        IdThash Id_Pos;
     }Thash;
     
    Thash** CreerTableHash(size_t nbEntrees,size_t nbLLR)
    {
        size_t i=0;
    	//Thash def = {NULL, 0, NULL};
     
    	Thash **TThash = (Thash**)malloc(nbEntrees * sizeof(Thash*));
    	Thash *TThash2 = (Thash*)malloc(nbLLR*nbEntrees * sizeof(Thash));
    		/*if(TThash == NULL)
    		return NULL;*/
    	for(i=0 ; i<nbEntrees ; i++)
    	{
            TThash[i]= &TThash2[i*nbLLR];
    	}
            return TThash;
    }

    pour la declaration comment je dois faire?
    je ne sais pas si ma declaration est exacte pour pas!?

    MErci

  10. #30
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    salut,
    je voulais savoir pour la liste chainée si on a une liste qu'on a déja explorer et on l'explore une nouvelle fois pourquoi çq ne donne rien?
    j'ai une structure {char* ID, pos (de type liste chainée)}.
    j'ai lu les pos de l'ID mais j'ai accédé une nouvelle fois mais ça me donne rien?
    Est-ce que vous avez une solution??
    Merci

  11. #31
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Repars-tu bien du début de la liste?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #32
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Repars-tu bien du début de la liste?
    non je n'ai pas pu retourner le pointeur au debut de la liste. comment faire?
    je pense une fois la liste est lu donc on ne peut pas la relire sans pointer son pointeur au début.

  13. #33
    Expert confirmé
    Inscrit en
    Mars 2005
    Messages
    1 431
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 1 431
    Points : 4 182
    Points
    4 182
    Par défaut
    Tu as dû modifier ta liste en la parcourant. Utilises des variables locales à ta fonction, ta liste doit rester inchangée.

  14. #34
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Matt_Houston Voir le message
    Tu as dû modifier ta liste en la parcourant. Utilises des variables locales à ta fonction, ta liste doit rester inchangée.
    je lis ma liste de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(maliste != NULL)
    { 
       printf("%d",p->pos);
       p=p->next;
    }
    et quand j'accede une nouvelle fois à la meme valeur pour enuméré une nouvelle fois les valeur de la liste ça ne donne rien!?
    Est-ce que vous avez une idée??
    Merci

  15. #35
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Ça va faire une boucle infinie, ça.
    Ce qu'il te faut, c'est un truc comme ceci:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    {
    	pos_id_chained_t * p = maListe;
     
    	while(p != NULL)
    	{ 
    		printf("%d",p->pos);
    		p = p->next;
    	}
    }
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #36
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Points : 65
    Points
    65
    Par défaut
    oui c'est ce que j'ai fait j'ai juste minimiser. meme comme ça. ça foctionne pas. j'ai pas mis dans une fonction je l'ai mis dans mon programme principal.
    je ne comprends pas le truc.
    je pense ici quand je sors de la boucle je dois remettre le pointeur à la première position. est-ce que vous avez une idée comment faire?
    MERci

  17. #37
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par mido1951 Voir le message
    quand je sors de la boucle je dois remettre le pointeur à la première position. est-ce que vous avez une idée comment faire?
    En en gardant une copie, tout simplement. Ou comme dans mon exemple, en travaillant sur une copie plutôt que l'original.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Problème de liste chainée
    Par SPACHFR dans le forum Débuter
    Réponses: 2
    Dernier message: 09/09/2009, 15h39
  2. Problème fabrication liste chainée
    Par scary dans le forum Débuter
    Réponses: 2
    Dernier message: 10/03/2009, 12h04
  3. Problème de listes chainées
    Par line86 dans le forum C
    Réponses: 5
    Dernier message: 20/04/2008, 10h30
  4. Probléme avec Liste Chainée
    Par Lucas42 dans le forum C
    Réponses: 6
    Dernier message: 24/01/2008, 20h15
  5. un probléme de liste chainé simple
    Par seifdev dans le forum C
    Réponses: 15
    Dernier message: 02/04/2007, 16h36

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