看板 C_and_CPP 關於我們 聯絡資訊
這是書上的練習題(松崗 C語言入門) 此例故意以char ids[N][10],不是以int宣告 請問哪邊與法有錯>_<" ,希望沒摸到地雷.. 以下是程式碼: /************** *****************/ #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 8 int comp(char *arg1, char *arg2) { return strcmp(arg1,arg2); //用字串比較 } /****** ****/ int main() { char ids[N][10]={"2001","2002","2003","2002","2007","2008","2004","2005"}; int i; qsort(ids,N,10,comp); // qsort(ids,N,sizof(char),comp); for(i=0;i<N;i++)printf("%s\n",ids[i]); system("pause"); return 0;} /****** ****/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.72.144.90
QQ29:哪裡錯講一下 是compile error還是結果錯還是? 10/07 19:43
QQ29:而且你連qsort也沒貼出來耶... 10/07 19:43
kingofsdtw:compiler 過不去 qsort 是用stdlib.h的 Q_Q 10/07 19:45
james732:qsort是C標準函式庫的函式 XD 10/07 19:45
james732:請貼出你的錯誤訊息 與你使用的編譯環境 10/07 19:45
tomnelson:qsort是內建函式不用貼出來 Orz... 10/07 19:45
19 E:\Lab\learn\C\ch08\5-2.cpp invalid conversion from `int (*)(char*, char*)' to `int (*)(const void*, const void*)' 19 E:\Lab\learn\C\ch08\5-2.cpp initializing argument 4 of `void qsort(void*, size_t, size_t, int (*)(const void*, const void*))' ※ 編輯: kingofsdtw 來自: 203.72.144.90 (10/07 19:47)
james732:我剛剛測試了一下 錯誤訊息已經很明白的告訴答案了 XDD 10/07 19:47
VictorTom:果然很明顯....XD 10/07 19:48
kingofsdtw:(ids,N,10,comp) (ids,N,sizof(char),comp)都過不了@@ 10/07 19:48
kingofsdtw:第三個size 不是指字元 大小嗎@@? 10/07 19:49
james732:我回文了,不是那行的問題啊....XDDD 10/07 19:52
QQ29:簡單講就是 qsort他吃的functor 型態是const void* 10/07 19:53
QQ29:你丟進去char * 他不給過 先丟個可過的 在自己轉型 10/07 19:54