Re: [問題] mergesort遇到seg fault
※ 引述《a0928855286 (Alan君)》之銘言:
: 這是小弟的程式碼
: http://codepad.org/wkpNQd97
: 我參考許多網路上的mergesort做法,但是其實的沒有找到關於指標陣列的做法,於是自
: 己寫了一個
: 程式的目標是把隨機生成的1000萬組字串做排序
: 但是最後出現了seg fault
: 這是以下的debugger的提示
: https://i.imgur.com/uIHkVO0.jpg

: 我有試過把1000萬筆改成小於100筆,就成功了!
: 所以不知道是出現了什麼問題QQ
: 會不會是太多筆資料嗎?
首先,把63行型態改對
再來就是,stack爆了
我的電腦可以跑到10萬筆,100萬就爆了
merge_sort一直call進去沒問題,只要一進merge就會掛掉
因為merge一開頭就宣告兩個超大的local variable array
stack在這邊就被吃完
(如果你有用debugger,試著把斷點設定進merge前,把merge array改小就不會死)
我試著把我的環境process stack改成65532KB(預設8192KB)
100萬筆就可以跑過,1000萬一樣掛掉
其實merge裡面的那兩個array size是可以算出來的
假設pointer佔4個byte,也是輕鬆爆掉
結論就是,試著都改用動態配置(heap)
還有用完要free...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.165.215
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1530467523.A.83F.html
→
07/02 02:04,
7年前
, 1F
07/02 02:04, 1F
→
07/02 02:04,
7年前
, 2F
07/02 02:04, 2F
推
07/03 00:00,
7年前
, 3F
07/03 00:00, 3F
→
07/03 00:00,
7年前
, 4F
07/03 00:00, 4F
→
07/03 00:00,
7年前
, 5F
07/03 00:00, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):