Bonjour, j'ai un prob sur un truc tout con mais après avoir essayé u ntas de modif je ne l'ai pas résolu.
Donc j'ai un tableau dynamique dont chaque élément contient 2 arbre syntaxique etje veux désallouer tout ça. mais lorsque j'ai + de 10 éléments (donc 20arbres) j'ai un débordement de pile ou un access violation (le plus souvent). si vous pouvez me dépanner (ou au moins me dire si ça vient des fonctions de desallocations suivantes), merci d'avance.
j'appelle : ViderEnsembleCourbes(&ECourbe); en quittant mon prog.
détails de mes structures au cas où :
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 void LibererArbre (TArbreSynt a) //Récursive {//Libère la mémoire allouée à l'arbre a if (a!= NULL) {LibererArbre(a->fg); LibererArbre(a->fd); free(a); } } void ViderEnsembleCourbes(TEnsembleCourbes *PtEC) {//Libère la mémoire dynamique associée à l'ensemble de courbes //puis initialise le nombre de courbes de l'ensemble à 0 for (int i=0;i<((*PtEC).nbcourbes);i++) {LibererArbre(((*PtEC).TabDynC[i]).ArbreFonction); LibererArbre(((*PtEC).TabDynC[i]).ArbreFonction); } free((*PtEC).TabDynC); (*PtEC).nbcourbes=0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 typedef struct NoeudSynt{TNature Nature; double ValConst; char OperOuFct; struct NoeudSynt *fg,*fd; }TNoeudSynt, *TArbreSynt; typedef struct {TArbreSynt ArbreFonction; TArbreSynt ArbreDerivee; int numero; }TCourbe; typedef struct {TCourbe *TabDynC; int nbcourbes;}TEnsembleCourbes;
Partager