所以我正在使用qsort基於一個int值在我稱爲「key」的結構中對結構數組進行排序。但是,雖然我的數組已被正確填充,但似乎並沒有對我的結構進行排序......未調用qsort比較函數?
似乎qsort從不會調用我的比較函數。函數中打印輸出語句的簡單測試顯示了這一點。我的「測試」從不出現。
對比功能:
int compare (const void *a, const void *b){
struct Record* a_r = (struct Record*)(a);
struct Record* b_r = (struct Record*)(b);
/*test*/
printf("test");
return (a_r->key - b_r->key);
}
我的快速排序呼叫:
qsort(arr, (sizeof(arr)/sizeof(struct Record)), sizeof(struct Record), compare);
是這個問題與我相比較的功能?或者我沒有傳遞正確的變量?
我的數組聲明:
struct Record *arr = malloc(size->st_size); //where st_size is stat() of input file
Ohmygoodness,是的。哇。我錯過了這一點,我感到很愚蠢。 – katiea