[問題] 用qsort對linking list作排序?
遇到的問題: (題意請描述清楚)
用qsort對linking list作排序時,compare function無法讀到第二個參數
(第二次呼叫後則是全都讀不到)
希望得到的正確結果:
可以正常排序
程式跑出來的錯誤結果:
compile會過,但執行時會出現"在XXX.exe 中發生未處理的 Win32 例外狀況。"
開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
VS 2008
有問題的code: (請善用置底文標色功能)
struct list {
int grade;
char name[128];
struct list *next;
};
struct list *head=NULL, *current=NULL, *prev=NULL;
void insertNode(char* name, int grade, int& nodes) {
nodes++;
current = (struct list *)malloc(1 * sizeof(*current));
if(!current) {
cerr << "No memory available." <<endl;
exit(EXIT_FAILURE);
}
current->next=NULL;
strcpy(current->name, name);
current->grade=grade;
if(!head) head=current;
else prev->next=current;
prev=current;
}
void sort(char* type, int nodes) {
current=head;
if(type=="name") cout<<"1111";
else if(type=="grade") qsort((void*)head, nodes, sizeof(*head) * nodes, compGrade);
}
int compGrade (const void* grade1, const void* grade2) {
cout << ((list*)grade1)->grade << endl;
cout << ((list*)grade2)->grade << endl;
return ((list*)grade1)->grade - ((list*)grade2)->grade;
}
補充說明:
因為程式碼太多,所以只貼上一部分
參考過這個網頁的寫法http://tinyurl.com/2flhdfm
還是一直出錯... 囧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.25.129.35
→
10/13 00:32, , 1F
10/13 00:32, 1F
→
10/13 00:32, , 2F
10/13 00:32, 2F
→
10/13 00:34, , 3F
10/13 00:34, 3F
→
10/13 00:35, , 4F
10/13 00:35, 4F
→
10/13 00:36, , 5F
10/13 00:36, 5F
→
10/13 00:36, , 6F
10/13 00:36, 6F
→
10/13 00:37, , 7F
10/13 00:37, 7F
→
10/13 00:38, , 8F
10/13 00:38, 8F
推
10/13 00:39, , 9F
10/13 00:39, 9F
→
10/13 00:41, , 10F
10/13 00:41, 10F
→
10/13 00:46, , 11F
10/13 00:46, 11F
→
10/13 00:46, , 12F
10/13 00:46, 12F
→
10/13 00:50, , 13F
10/13 00:50, 13F
→
10/13 00:51, , 14F
10/13 00:51, 14F
→
10/13 00:51, , 15F
10/13 00:51, 15F
→
10/13 00:51, , 16F
10/13 00:51, 16F
→
10/13 00:58, , 17F
10/13 00:58, 17F
→
10/13 01:51, , 18F
10/13 01:51, 18F
→
10/13 01:51, , 19F
10/13 01:51, 19F
推
10/13 01:55, , 20F
10/13 01:55, 20F
推
10/13 08:51, , 21F
10/13 08:51, 21F
→
10/13 22:50, , 22F
10/13 22:50, 22F
推
10/13 22:55, , 23F
10/13 22:55, 23F
→
10/13 22:56, , 24F
10/13 22:56, 24F
→
10/13 22:57, , 25F
10/13 22:57, 25F
→
10/13 22:57, , 26F
10/13 22:57, 26F
→
10/13 22:57, , 27F
10/13 22:57, 27F
→
10/13 23:00, , 28F
10/13 23:00, 28F
→
10/13 23:01, , 29F
10/13 23:01, 29F
→
10/14 02:02, , 30F
10/14 02:02, 30F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章