Liste doublement chainée

Utilisateur anonyme - 27 mai 2008 à 14:47
 Utilisateur anonyme - 27 mai 2008 à 19:13
Je suis débutant et j'ai un problème avec ma liste doublement chainée. Quand j'essaie de créer plus de 2 éléments, ça plante. Je n'ai aucune erreur de compilation ni de warning. Voici mon code :

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

typedef struct antichaine{
    int tab;
    struct antichaine *prec;
    struct antichaine *suiv;
}chaine;

void main(){
    int i=2,n=3;
    chaine *debut=(chaine*)malloc(sizeof(struct antichaine));
    chaine *tmp=(chaine*)malloc(sizeof(struct antichaine));
    chaine *parcours=(chaine*)malloc(sizeof(struct antichaine));
    debut->prec=NULL;
    debut->suiv=NULL;
    debut->tab=1;
    parcours=debut;
    do{
        if(i<=n){
            tmp->prec=NULL;
            tmp->suiv=NULL;
            tmp->tab=i;
            parcours->suiv=tmp;
            tmp->prec=parcours;
            tmp->suiv=NULL;
            parcours=parcours->suiv;
            i++;
        }
        if(i>n){
            parcours->suiv=NULL;
            tmp=NULL;
        }
       
    }while(tmp!=NULL);

   
    while(parcours->prec!=NULL){
        parcours=parcours->prec;
    }
    debut=parcours;
   
    while(debut!=NULL){
        printf("%d\n",debut->tab);
        debut=debut->suiv;
    }

}

2 réponses

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
27 mai 2008 à 17:40
Bonjour.
Je n'ai aucune erreur de compilation ni de warning. ==> Ce n'est pas pour ça que ton programme va marcher, malheureusement ...
Quand j'essaie de créer plus de 2 éléments ==> C'est normal, dans l'état actuel des choses tu n'alloues pas de mémoire pour de nouveau "antichaine"
0
Utilisateur anonyme
27 mai 2008 à 19:13
Merci pour l'info. J'ai ajouté un malloc dans ma boucle et ça marche.
0
Rejoignez-nous