问题是 - 我尝试使用qsort对几行进行排序,一切都在outfile中运行。不幸的是valgrind
给了我关于不释放一些内存块的错误。
起初我以为 - 我需要free(lines)
但它已经存在了。我错过了什么?
qsort(lines, linenumber, sizeof(char*), compare_string);
for(c=0; c<linenumber; c++) {
fputs(lines[c], outfile);
}
free(lines);
答案 0 :(得分:1)
你是如何为线路分配内存的?如果它是一个二维数组,那么你必须在for循环中单独malloc每一行。
做这样的事情 -
for(counter=Max_lines;counter>0;counter--){
free(lines[counter]);
}