[問題] qsort實作在二維陣列遇到的問題

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

Links booklink

Contact Us: admin [ a t ] ucptt.com