[问题] linklist+segmentation fault

楼主: eecheng87 (EEcheng)   2018-01-06 11:29:24
先附上程式码 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)就会印出
分组完的那个位置的数字呢?
谢谢各位拨空看完
作者: Sidney0503 (Sidney0503)   2018-01-06 11:36:00
未看先猜不是用动态内存配置你的t只有41行 会assign所以50行的t->不是每次都有东西你应该先把编译器warning开到最大不对 你42行就return 所以50行永远拿不到t
作者: jobsdone (完工了)   2018-01-06 11:48:00
给个测资吧,比较好抓
作者: Sidney0503 (Sidney0503)   2018-01-06 11:48:00
接口最好切开 先做container再套入资料 不要混著写
楼主: eecheng87 (EEcheng)   2018-01-06 12:01:00
goo.gl/vH8y81 压缩档里面记事本为测资S大,刚刚我有在50行新加你说的问题了,但还是不行https://ideone.com/UfeyZN
作者: jobsdone (完工了)   2018-01-06 12:51:00
你54~57不太对吧?你这样两条link list就混在一起了看起来你是想要把route一个一个拔到group里,但是你没有拔干净
楼主: eecheng87 (EEcheng)   2018-01-06 12:59:00
j大,我在那个函数里面只有用一条+一个点(node)没错我想这么做,但请问拔干净是指?
作者: jobsdone (完工了)   2018-01-06 13:03:00
你要拔node的话next要null,所以你main也要改
作者: Sidney0503 (Sidney0503)   2018-01-06 13:21:00
把你的编译器warning开到最大 不会的话去学
作者: jobsdone (完工了)   2018-01-06 13:22:00
然后你group也要初始化,大概这样同意s大,你还蛮多地方写很脏,这样容易有问题
楼主: eecheng87 (EEcheng)   2018-01-06 13:58:00
我用gcc -Wall 去看,除了出现warning: 的讯息外其他还有跑出资料夹路径 那些也是警告吗
作者: alan23273850   2018-01-07 08:40:00
新手写linked list,最好先用计算纸清楚讨论各种情况,不然co下去一定错误百出也最好把自己写的list包成class模组化,较好debug

Links booklink

Contact Us: admin [ a t ] ucptt.com