[問題] 指標陣列的氣泡排序法

看板C_and_CPP (C/C++)作者 (如履薄冰)時間8年前 (2017/08/07 21:39), 8年前編輯推噓0(005)
留言5則, 2人參與, 最新討論串1/1
各位大大好,小弟第一次發問,若有不妥之處歡迎指點。 開發平台(Platform): (Ex: Win10, Linux, ...) CentOS release 6.7 Final i686 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) gcc version 4.4.7 20120313 (Red Hat 4.4.7-16) 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 我正在練習指標的傳遞 先將一維指標陣列傳入函式中進行由小到大氣泡排序 但是發現傳回來的結果 最大的那個數都會變成零 如果使用一維陣列的方式去做就會回傳正確的結果 想問說我不是遺漏什麼了或是指標的排序要再修改什麼? 先感謝各位的回答了! 附上我寫的程式碼:http://codepad.org/DEqkmByY -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.230.119.97 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1502113154.A.9EE.html

08/07 21:46, , 1F
邊界條件要注意 i=10的時候 會比較到a[9]>a[10]
08/07 21:46, 1F
感謝ilikekotomi大 那為什麼在使用一維陣列的方式來排序的時候不會發生呢? ※ 編輯: pillbox1989 (61.230.119.97), 08/07/2017 21:57:02

08/07 21:58, , 2F
用debugger看a[10]才知道 可能a[10]的位置比a[9]大
08/07 21:58, 2F

08/07 22:04, , 3F
在我的環境測 程式結束時會因改到stack變數造成crash
08/07 22:04, 3F
狀況真如你所說的狀況,問題解決了 那你是使用什麼開發環境呢? ※ 編輯: pillbox1989 (61.230.119.97), 08/07/2017 22:12:02

08/07 23:17, , 4F
你好 不好意思回覆晚了 我用win7 + vs2015
08/07 23:17, 4F

08/07 23:25, , 5F
j最大是9 j+1 = 10 但你沒有a[10]
08/07 23:25, 5F
文章代碼(AID): #1PY6s2dk (C_and_CPP)
文章代碼(AID): #1PY6s2dk (C_and_CPP)