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();
}