看板 C_and_CPP 關於我們 聯絡資訊
開發平台(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了快要一天都不知問題出在哪... 感恩 <(_ _)>! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.19.2 ※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1406555698.A.D05.html
firejox:node的部份有寫錯吧... 07/28 22:21
firejox:你傳的是"位址值"喔 所以呼叫的時候 p不會變~ 07/28 22:24
麻煩大大可以說的詳細一點嗎@@ 我聽不太懂意思
Caesar08:小弟才疏學淺,為什麼void initqueue(pq)與queue *pq;要 07/28 22:30
Caesar08:分開寫呢? 有什麼好處嗎? 07/28 22:31
因為c沒有class我又不知該如何給他建構值所以就把該建構的東西寫在initXXX()裡面
IhateOGC:malloc @@? 07/28 22:41
IhateOGC:你應該只能有一個主串列 來insert 07/28 22:42
IhateOGC:實際上其他new Node都是call by value丟來這insert funct 07/28 22:43
我函式內的node *p指是用來控制那我說的100個node所以我在函式裡用完就可已捨棄了 然而只有一個主串列應該是我queue裡的front跟rear指像最前面跟最後的node 所以可以再說詳細一點嗎 我語言能力好差QQ
firejox:int a; call_func(a); a存的值不會因call_func改變 07/29 00:41
firejox:同理 node* p; getnode(p); p也不會因為getnode改變 07/29 00:42
firejox:都是call by value 07/29 00:46
感謝解惑 那我要怎麼修改才能達到我預期的結果?
firejox:有兩種方式 1.return p;的方式 2.用雙重指標 07/29 01:38
感謝firejox就是那道光! 現在東西都正常work了!
Killercat:我覺得...是時候該學學GDB了喔 :P 07/29 04:43
Killercat:你就用這個當作GDB的練習標的吧 遲早要學的 07/29 04:43
好的!我會的 謝謝你! ※ 編輯: qas612820704 (140.120.19.2), 07/29/2014 11:00:36