簡體   English   中英

qsort一個字符串數組,比較

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM