[問題] 傳空List進function,產生新List

看板C_and_CPP作者 (1)時間7年前 (2017/05/23 01:55), 編輯推噓4(4010)
留言14則, 6人參與, 最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) Linux 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) GCC 問題(Question): 給定一個function的定義: bool NewList(List *head); head為一個list的first node,但故意傳一個空的list(head本身就是NULL), 要在function NewList裡面產生一個新node,將它接到傳進來的head, 並讓function NewList外面也能夠使用這個產生的新node 程式碼(Code):(請善用置底文網頁, 記得排版) https://ideone.com/YgH27x 如上程式碼 考慮到新node要在function外也能使用,因此使用動態記憶體配置的方式產生新node。 但是第33行,把head指向新node,這樣仍然只能在function內使用新node, 第45行的OneNode還是指向NULL,無法使用到function NewList裡面產生的新node, 請問有什麼方法可以達成嗎? 期盼能得到板上大大的指教 感恩 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 106.1.228.65 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1495475731.A.93A.html

05/23 02:22, , 1F
這樣你傳進 NewList 裡的就必要要是指標的指標
05/23 02:22, 1F

05/23 02:22, , 2F
bool NewList(List **phead);
05/23 02:22, 2F

05/23 02:23, , 3F
或是指標的參考 bool NewList(List *&head);
05/23 02:23, 3F

05/23 02:30, , 4F

05/23 02:35, , 5F
推 一樓的解法。
05/23 02:35, 5F

05/23 02:37, , 6F
Reference 很實用。
05/23 02:37, 6F

05/23 08:59, , 7F

05/23 09:00, , 8F
函數回傳指標的方式似乎是古老寫法。
05/23 09:00, 8F

05/23 09:06, , 9F
修正上述連結無論如何回傳head,免得有空間被洗掉。
05/23 09:06, 9F

05/23 17:52, , 10F
至底13戒-13
05/23 17:52, 10F

05/24 20:25, , 11F
請問pttworld大,您連結裡改return head的差別是?
05/24 20:25, 11F

05/26 13:17, , 12F
推薦把 new 跟 apeend 函式拆開寫會比較好~
05/26 13:17, 12F

05/26 13:18, , 13F
http://ideone.com/MRWRtn 這樣 main 比較好操作
05/26 13:18, 13F

05/26 13:19, , 14F
沒事~好像看錯了你只是在建頭而已
05/26 13:19, 14F
文章代碼(AID): #1P8oOJaw (C_and_CPP)