1

问题是 - 我正在尝试使用 qsort 对几行进行排序,一切都在 outfile 中工作。不幸的是valgrind,给了我关于不释放一些内存块的错误。

起初我想——我需要,free(lines)但它已经在那里了。我错过了什么?

qsort(lines, linenumber, sizeof(char*), compare_string);
 for(c=0; c<linenumber; c++) {
    fputs(lines[c], outfile);
 }
 free(lines);
4

1 回答 1

1

你是如何为行分配内存的?如果它是一个二维数组,那么您必须在 for 循环中分别 malloc 每一行。

做这样的事情-

for(counter=Max_lines;counter>0;counter--){
     free(lines[counter]);
}
于 2012-09-01T16:04:08.323 回答