作者Hyozero (1)
看板C_and_CPP
标题[问题] 传空List进function,产生新List
时间Tue May 23 01:55:27 2017
开发平台(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://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1495475731.A.93A.html
1F:推 LPH66: 这样你传进 NewList 里的就必要要是指标的指标 05/23 02:22
2F:→ LPH66: bool NewList(List **phead); 05/23 02:22
3F:→ LPH66: 或是指标的参考 bool NewList(List *&head); 05/23 02:23
5F:推 cuteSquirrel: 推 一楼的解法。 05/23 02:35
6F:→ cuteSquirrel: Reference 很实用。 05/23 02:37
8F:→ pttworld: 函数回传指标的方式似乎是古老写法。 05/23 09:00
9F:→ pttworld: 修正上述连结无论如何回传head,免得有空间被洗掉。 05/23 09:06
10F:推 Raymond0710: 至底13戒-13 05/23 17:52
11F:→ Hyozero: 请问pttworld大,您连结里改return head的差别是? 05/24 20:25
12F:→ hunandy14: 推荐把 new 跟 apeend 函式拆开写会比较好~ 05/26 13:17
14F:→ hunandy14: 没事~好像看错了你只是在建头而已 05/26 13:19