2012-09-01 22 views
1

問題是 - 我試圖使用qsort排序幾行,一切工作在outfile中。不幸的是valgrind給了我關於沒有釋放一些內存塊的錯誤。qsort排序行,得到不一致的塊

起初我以爲 - 我需要free(lines)但它已經在那裏。我錯過了什麼?

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

哪裏是你的分配? – md5

回答

1

你是如何給內存分配行的?如果它是一個二維數組,那麼你必須在for循環中分別malloc每行。

像做這個 -

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