Libérez correctement un tableau de structure
Bonjour/Bonsoir,
J'ai la structure suivante avec laquelle je travaille :
Code:
1 2 3 4 5
| typedef struct polynome_s
{
double *coeffs; //Tableau des coefficients
int deg; //Degre du polynome
}Polynome; |
Je l'alloue avec la fonction suivante:
Code:
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;
} |
Je récupére donc alloc dans une variable Polynome poly1 et pour libérer cette structure j'ai la fonction:
Code:
1 2 3 4 5 6
| void FreePolynome(Polynome *P)
//On libére
{
free(P->coeffs);
free(P);
} |
Que j'appelle comme ça:
Code:
FreePolynome(poly1);
Cependant, j'ai un problème lors de l'éxecution du programme, le compilateur me dit :
*** 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 :P
Merci d'avance