in this portion I have a memory leak of 5 blocks which seems to match my loop turns so I tried adding free(newcw); in the while loop but I get a segmentation fault 11 error (but a clean valgrind), I don't understand why.
while(...){
cword *newcw = malloc(sizeof *newcw);
if (newcw == NULL) {
fprintf(stderr, "*** Error: Not enough memory.
");
...
return EXIT_FAILURE;
}
newcw->nbocc = 1;
newcw->iscommon = 0;
if (hashtable_add(ht, s, newcw) == NULL) {
...
return EXIT_FAILURE;
}
/*-----free(newcw);-----*/
}
cword is a structure with two members nbocc and iscommon.
Without the free instruction it works (with a memory leak), so I don't know where can I free the cword structure pointer newcw
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…