看板 C_and_CPP 關於我們 聯絡資訊
先附上程式碼 https://ideone.com/CMiomt 稍微解釋一下我想做甚麼,首先先把一堆資料(包含IP,len)用linklist 串起來,頭命名為routing_head,接著透過d(已知)和segment函數將那條 鏈結序列分成多條鏈結序列(該分到哪一條的依據在segment函數內,依據是 看當前指到的那個資料的IP前幾個(由d決定)位元為多少就分到第幾個 group[index]),再透過insert_prefix將當前指到的資料插入(按照大小) 以下為 作法(流程圖) 和 想法(流程圖) https://imgur.com/a/V8Uuk 錯誤訊息只有segmentation fault(跑了一段時間才出現,應該第一條序列有 建立好了,第一個步驟那條)請問我哪個部分有問題呢? 另外我這種作法,是否在main函數print( ...group[0].next->IP)就會印出 分組完的那個位置的數字呢? 謝謝各位撥空看完 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.131.125 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1515209369.A.479.html
Sidney0503: 未看先猜不是用動態記憶體配置 01/06 11:36
Sidney0503: 你的t只有41行 會assign 01/06 11:42
Sidney0503: 所以50行的t->不是每次都有東西 01/06 11:43
Sidney0503: 你應該先把編譯器warning開到最大 01/06 11:44
Sidney0503: 不對 你42行就return 所以50行永遠拿不到t 01/06 11:46
jobsdone: 給個測資吧,比較好抓 01/06 11:48
Sidney0503: 介面最好切開 先做container再套入資料 不要混著寫 01/06 11:48
eecheng87: goo.gl/vH8y81 壓縮檔裡面記事本為測資 01/06 12:01
eecheng87: S大,剛剛我有在50行新加你說的問題了,但還是不行 01/06 12:25
eecheng87: https://ideone.com/UfeyZN 01/06 12:26
jobsdone: 你54~57不太對吧? 01/06 12:51
jobsdone: 你這樣兩條link list就混在一起了 01/06 12:52
jobsdone: 看起來你是想要把route一個一個拔到group裡,但是你沒 01/06 12:57
jobsdone: 有拔乾淨 01/06 12:57
eecheng87: j大,我在那個函數裡面只有用一條+一個點(node) 01/06 12:59
eecheng87: 沒錯我想這麼做,但請問拔乾淨是指? 01/06 13:00
jobsdone: 你要拔node的話next要null,所以你main也要改 01/06 13:03
Sidney0503: 把你的編譯器warning開到最大 不會的話去學 01/06 13:21
jobsdone: 然後你group也要初始化,大概這樣 01/06 13:22
jobsdone: 同意s大,你還蠻多地方寫很髒,這樣容易有問題 01/06 13:23
eecheng87: 我用gcc -Wall 去看,除了出現warning: 的訊息外 01/06 13:58
eecheng87: 其他還有跑出資料夾路徑 那些也是警告嗎 01/06 13:58
alan23273850: 新手寫linked list,最好先用計算紙清楚討論各種情 01/07 08:40
alan23273850: 況,不然co下去一定錯誤百出 01/07 08:40
alan23273850: 也最好把自己寫的list包成class模組化,較好debug 01/07 08:41