[问题] 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