J'ai un problème avec ma liste doublement chainée, je ne peux créer plus de 2 éléments. Si j'en crée plus, ça plante. Je n'ai pas d'erreur ni de warning à la compilation. Pouvez-vous m'aider.

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