[问题] Linklist 不知道哪里出了问题

楼主: qas612820704 (Lego)   2014-07-28 21:54:53
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
gcc
问题(Question):
我运用linklist建立queue
结构大概是有5个档案
node.h node.c
nodequeue.h nodequeue.c
main.c

node.c inlcude node.h
nodequeue.c include nodequeue.h
nodequeue.h include node.h
main.c include nodequeue.h
我的想法我觉得有点自找麻烦 规则大概是
我建立100个node 而我自认为我只能有这100个node 不能新增也不能删除
而我的方法是先把这100个node建成linklist
然后先把avaliable指向第一个 最后一个指向NULL
avaliable就是可以用的node 然后再借由 getnode 以及 freenode
来控制哪些是可以用的node
然后再用这些可以用的node建立queue
可是不知道是哪里出问题了 输出不了我要的结果
错误结果(Wrong Output):
compiler会过但
每次错误结果都不一样
程式码(Code):(请善用置底文网页, 记得排版)
https://gist.github.com/anonymous/9df04dec8f15f2a05e1e
有请各位帮我找问题
说不负责一点就是请大家帮我debug QQ
我de了快要一天都不知问题出在哪... 感恩 <(_ _)>!
作者: firejox (Tangent)   2014-07-28 22:21:00
node的部份有写错吧...你传的是"位址值"喔 所以呼叫的时候 p不会变~
作者: Caesar08 (Caesar)   2014-07-28 22:30:00
小弟才疏学浅,为什么void initqueue(pq)与queue *pq;要分开写呢? 有什么好处吗?
作者: IhateOGC (我讨厌)   2014-07-28 22:41:00
malloc @@?你应该只能有一个主串行 来insert实际上其他new Node都是call by value丢来这insert funct
作者: firejox (Tangent)   2014-07-29 00:41:00
int a; call_func(a); a存的值不会因call_func改变同理 node* p; getnode(p); p也不会因为getnode改变都是call by value有两种方式 1.return p;的方式 2.用双重指标
作者: Killercat (杀人猫™)   2014-07-29 04:43:00
我觉得...是时候该学学GDB了喔 :P你就用这个当作GDB的练习标的吧 迟早要学的

Links booklink

Contact Us: admin [ a t ] ucptt.com