作者eecheng87 (EEcheng)
看板C_and_CPP
標題[問題] linklist+segmentation fault
時間Sat Jan 6 11:29:24 2018
先附上程式碼
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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1515209369.A.479.html
1F:推 Sidney0503: 未看先猜不是用動態記憶體配置 01/06 11:36
2F:→ Sidney0503: 你的t只有41行 會assign 01/06 11:42
3F:→ Sidney0503: 所以50行的t->不是每次都有東西 01/06 11:43
4F:→ Sidney0503: 你應該先把編譯器warning開到最大 01/06 11:44
5F:→ Sidney0503: 不對 你42行就return 所以50行永遠拿不到t 01/06 11:46
6F:推 jobsdone: 給個測資吧,比較好抓 01/06 11:48
7F:→ Sidney0503: 介面最好切開 先做container再套入資料 不要混著寫 01/06 11:48
8F:→ eecheng87: goo.gl/vH8y81 壓縮檔裡面記事本為測資 01/06 12:01
9F:→ eecheng87: S大,剛剛我有在50行新加你說的問題了,但還是不行 01/06 12:25
11F:→ jobsdone: 你54~57不太對吧? 01/06 12:51
12F:→ jobsdone: 你這樣兩條link list就混在一起了 01/06 12:52
13F:→ jobsdone: 看起來你是想要把route一個一個拔到group裡,但是你沒 01/06 12:57
14F:→ jobsdone: 有拔乾淨 01/06 12:57
15F:→ eecheng87: j大,我在那個函數裡面只有用一條+一個點(node) 01/06 12:59
16F:→ eecheng87: 沒錯我想這麼做,但請問拔乾淨是指? 01/06 13:00
17F:推 jobsdone: 你要拔node的話next要null,所以你main也要改 01/06 13:03
18F:推 Sidney0503: 把你的編譯器warning開到最大 不會的話去學 01/06 13:21
19F:→ jobsdone: 然後你group也要初始化,大概這樣 01/06 13:22
20F:→ jobsdone: 同意s大,你還蠻多地方寫很髒,這樣容易有問題 01/06 13:23
21F:→ eecheng87: 我用gcc -Wall 去看,除了出現warning: 的訊息外 01/06 13:58
22F:→ eecheng87: 其他還有跑出資料夾路徑 那些也是警告嗎 01/06 13:58
23F:推 alan23273850: 新手寫linked list,最好先用計算紙清楚討論各種情 01/07 08:40
24F:→ alan23273850: 況,不然co下去一定錯誤百出 01/07 08:40
25F:→ alan23273850: 也最好把自己寫的list包成class模組化,較好debug 01/07 08:41