[问题] 传空List进function,产生新List

楼主: Hyozero (1)   2017-05-23 01:55:27
开发平台(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,
请问有什么方法可以达成吗?
期盼能得到板上大大的指教
感恩
作者: LPH66 (-6.2598534e+18f)   2017-05-23 02:22:00
这样你传进 NewList 里的就必要要是指标的指标bool NewList(List **phead);或是指标的参考 bool NewList(List *&head);
作者: cuteSquirrel (松鼠)   2017-05-23 02:30:00
https://ideone.com/frgL1N推 一楼的解法。Reference 很实用。
作者: pttworld (批踢踢世界)   2017-05-23 08:59:00
http://codepad.org/ZEMLvtq4函数回传指标的方式似乎是古老写法。修正上述连结无论如何回传head,免得有空间被洗掉。
作者: Raymond0710 (雷门)   2017-05-23 17:52:00
至底13戒-13
楼主: Hyozero (1)   2017-05-24 20:25:00
请问pttworld大,您连结里改return head的差别是?
作者: hunandy14 (Charlott.HonG)   2017-05-26 13:17:00
推荐把 new 跟 apeend 函式拆开写会比较好~http://ideone.com/MRWRtn 这样 main 比较好操作没事~好像看错了你只是在建头而已

Links booklink

Contact Us: admin [ a t ] ucptt.com