qsort分拣线,得到不一致的块

时间:2012-09-01 15:48:02

标签: c free

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

起初我以为 - 我需要free(lines)但它已经存在了。我错过了什么?

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

1 个答案:

答案 0 :(得分:1)

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

做这样的事情 -

for(counter=Max_lines;counter>0;counter--){
     free(lines[counter]);
}