Bonjour/Bonsoir,
J'ai la structure suivante avec laquelle je travaille :
Je l'alloue avec la fonction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct polynome_s { double *coeffs; //Tableau des coefficients int deg; //Degre du polynome }Polynome;
Je récupére donc alloc dans une variable Polynome poly1 et pour libérer cette structure j'ai la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Polynome *AllocPolynome (int deg) //On alloue de la mémoire pour la structure et son tableau en fonction du degr passé en paramétre { Polynome *alloc; alloc = malloc(sizeof(Polynome)); alloc->deg = deg-1; alloc->coeffs = malloc(deg*sizeof(double)); return alloc; }
Que j'appelle comme ça:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void FreePolynome(Polynome *P) //On libére { free(P->coeffs); free(P); }
Cependant, j'ai un problème lors de l'éxecution du programme, le compilateur me dit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part FreePolynome(poly1);
*** Error in `./a.out': free(): invalid next size (fast): 0x000000000225c0a0 ***
Abandon (core dumped)
Du coup je pense raisonnablement que ça vient d'un problème dans ma fonction FreePolynome, mais je vois pas ou.
Un peu d'aide me serait utile
Merci d'avance
Partager