快速排序我有這樣的結構:問題在C
typedef struct item{
char label[10];
int support;
};
我創造了這樣的結構是這樣的數組:
struct item* finstr = (struct item*)malloc(sizeof(struct item)*10);
我充滿了適當的值數組,並要排序該數組根據'support'的值使用qsort函數。但是,數組根本沒有被分類。輸出結果與輸入相同。
這裏是調用qsort函數併爲「比較」函數的代碼:
qsort((void*)finstr,(sizeof(finstr)/sizeof(finstr[0])),sizeof(finstr[0]),comparator);
比較功能:
int comparator(const void* i1,const void* i2) {
int l = ((struct item*)i1)->support;
int r = ((struct item*)i2)->support;
return l-r;
}
在那裏我做了錯誤,我不明白。任何幫助是極大的讚賞。
在此先感謝。
'sizeof(finstr)'是指針'finstr'的大小,而不是指針所引用的內存量。 – 2015-03-25 06:34:45
此外,第一個typedef不應該編譯imo(它缺少名稱) – a3f 2015-03-25 06:36:34
http://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – 2015-03-25 06:38:33