看板 C_and_CPP 關於我們 聯絡資訊
Win7 GCC 小弟第一次在本版發文,如有疏失感謝指正^^ 自己實作了<stdlib.h>裡的qsort,在一維陣列上的運作也正常(拿int陣列測試過了) 但在二維陣列(用char二維陣列測試)上的排序會segmentation fault Input/Output跟code都在https://paste.ofcode.org/3b8Rnna9rLskcfDuE4cWLVw 自己有爬過一些本版的文章了 像是#1CDqVJms,我用一樣的方式是可以正常運行<stdlib.h>的qsort的,但我自己的不行 研究過後覺得問題應該是出在我的swap,但是我不知道要怎麼修改,懇請各位解答 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.192.89.236 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1587694166.A.B8A.html
andy5343927: 將cmp內容修改後已解決,不確定是否還有錯誤 04/24 11:29
andy5343927: 這是更改後的code 04/24 11:31
andy5343927: 但發現這會導致排序錯誤等問題 04/24 11:43
sarafciel: 你排序錯誤的測資跟輸出長怎麼樣? 04/24 13:18
justhit666: 因為你不能把二維陣列這樣直接傳進去,上次我來爬文就 04/24 14:43
justhit666: 是犯了這個錯誤XD 04/24 14:43
justhit666: C/C++ 語言新手十三誡 -- Ver. 2016 04/24 14:44
justhit666: .html 04/24 14:44
justhit666: 第十二戒 04/24 14:45
justhit666: 欸我不確定,可能是我太敏感了,再看一下,先不要理我 04/24 14:46
justhit666: 我菜雞><! 04/24 14:47
justhit666: 喔,看起來好像沒講錯? 04/24 14:55
andy5343927: 好像是 我後來想到我有犯這個錯 不過我先整理一下Y 04/24 15:24
andy5343927: 這裡對void*做加法一次是加一個byte的量沒錯吧? 04/24 17:40
Lipraxde: void pointer 不能拿來做運算吧@@ 04/24 18:30
loveme00835: 你需要先釐清 value/reference semantics, 只要 cmp 04/24 19:38
loveme00835: 還有 swap 匹配好其餘實作沒什麼差 04/24 19:38