[問題] 動態二維struct與qsort
各位好
小弟動態開了一個二維的struct 然後將它丟到qsort內要做排序時出了問題
我一開始是先試著不用動態宣告二維struct
這樣的結果都是正確的
但我用new的就不知道錯在哪裡 結果都亂七八糟Q_Q
拜託版友幫我看看是哪裡出了問題
code在這 : http://codepad.org/adNwMgF0
只貼了部分有關qsort與struct的程式
我是想排序match.value 之後再去抓未排序前的index
請各位幫幫忙
感謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.107.172.190
推
03/21 01:38, , 1F
03/21 01:38, 1F
→
03/21 02:10, , 2F
03/21 02:10, 2F
我要對 match[i][j].value 做排序...QQ
※ 編輯: cygnus122 來自: 120.107.172.190 (03/21 02:14)
→
03/21 02:22, , 3F
03/21 02:22, 3F
→
03/21 02:24, , 4F
03/21 02:24, 4F
→
03/21 02:25, , 5F
03/21 02:25, 5F
→
03/21 02:26, , 6F
03/21 02:26, 6F
是以整個陣列做排序 D陣列的資料型態是double
對應到match[i][j].value 這個資料型態也是double
http://codepad.org/b06O6Dih 這個是靜態開二維struct的 結果正確...
不知道為什麼改成動態的就錯了Q_Q 我是用VS2008
※ 編輯: cygnus122 來自: 120.107.172.190 (03/21 05:01)
推
03/21 14:21, , 7F
03/21 14:21, 7F
對 用malloc也一樣 我猜想是不是在動態配置二維struct的時候
這些位置不是連續的 所以餵進去qsort沒辦法正確的抓到值
因為我改成動態配一維的就可以用XD 但是二維就不行..
※ 編輯: cygnus122 來自: 120.107.172.190 (03/21 14:29)
自問自答一下 果然是記憶體配置的問題 因為不是連續的位置
我參考版上 #18nfY1iV 這篇的連續動態配置記憶體的方法
這樣結果就正確了 感謝各位的回應
※ 編輯: cygnus122 來自: 120.107.172.190 (03/21 14:56)