[英]qsort an array of strings, compare
我試圖弄清楚如何將qsort與字符串數組一起使用。 我的代碼如下所示。
char words[500][256];
int numOfWords; // this is calculated above
int sortWordList() {
int length = sizeof(words) / sizeof(char *);
qsort(words, length, sizeof(char*), compare);
}
int compare (const void * a, const void * b ) {
const char *pa = *(const char**)a;
const char *pb = *(const char**)b;
return strcmp(pa,pb);
}
但是,我每次都會收到“訪問沖突讀取位置0x ### ..”,但我不知道怎么了。 誰能發現我的問題?
編輯:感謝您的出色幫助。 你們永遠是最好的。
您沒有正確地將const void *
強制轉換為const char *
,為此,請改用:
const char *pa = (const char *)a;
const char *pb = (const char *)b;
再加上compare()
應該在sortWordList()
上方,因為您在sortWordList()
使用它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.