[Erreur] double free or corruption
Bonjour,
je sollicite votre aide car j'ai l'erreur double "free or corruption (out)" quand j'essaye d'utiliser la fonction free (pourtant je mets bien mes pointeurs à NULL après chaque free).
Voila la bout de code en question (avec toutes les lignes ou la variable en question est utilisé):
Code:
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 27 28 29 30 31 32 33 34 35 36
|
typedef struct
{
int id;
double d;
} neighbor;
[...]
void ma_fonction(...)
{
neighbor *k_best=NULL;
k_best=(neighbor*)malloc(k*sizeof(neighbor));
for(...)
{
for(i=0;i<k;i++)
{
k_best[i].id=-1;
k_best[i].d=DBL_MAX;
}
[...]
for (i=0;i<ds[0];i++)
{
tmp_dist=dist(predict[p],data[i],ds[1]-1);
if (k_best[0].d>tmp_dist)
{
k_best[0].d=tmp_dist;
k_best[0].id=i;
qsort (k_best,k, sizeof(neighbor), cmp);
}
}
[...]
}
free(k_best);
k_best=NULL;
} |
Vous avez des idées sur l'origine du problème?
Merci d'avance.