Bonjours, le programme suivant est écrit et exécuter par DEVC++.
Pas d’erreurs de compilation, le problème c’est que lors de l’exécution de la 4eme itération de la boucle for, le programme s’arrête.
J’ai mit devant chaque instruction a l’intérieur de « for » un « printf »pour savoir il est ou le problème exactement et j’ai trouvé que : si par exemple le nombre des éléments de mon tableau égale à 5 qui est le même nombre d’itération de la boucle, le programme s’exécute très bien dans les 3 premières itération , lors de la quatrième itération il s’arrêt au niveau d’allocation d’espace mémoire de l’élément « racine » de type arbre
Je vous en pris aidez moi pour savoir pourquoi j’ai ce problème.
en attente de vous propositions.
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 #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<math.h> #include<malloc.h> main() { typedef struct elt {int info; struct elt*succ_gauche;struct elt*succ_droit;}arbre; arbre**niveauzero;// declaration de vecteur qui va contenir les adresse des elements de type arbre arbre*racine;//declaration d'un element de type arbre int n,x,i; printf("donnez le nombre d'elements de tableau"); scanf("%d",&n); niveauzero=(arbre**)malloc(n*sizeof(arbre*));//Allocation d'espace pour le vecteur qui va contenir les adresses des feuilles for(i=0;i<n;i++) {printf("donnez une valeur "); scanf("%d",&x);printf("lecture bien effectuer %d\n",i); racine=(arbre*)malloc(sizeof(arbre*));printf("allocation est de l'element racine est termine %d\n",i);//Allocation d'espace pour chaque feuille racine->info=x;printf("affectation de x au champ info de la racine %d\n",i); racine->succ_gauche=racine->succ_droit=NULL;printf("initialisation de fils gauche et droit %d\n",i); niveauzero[i]=racine;printf("affectation a niveaude i l'adresse de racine %d\n",i); } getche(); }
Partager