作者s890269 (赛)
看板C_and_CPP
标题[问题] 链结串列,加入新节点在头端
时间Sun Apr 14 18:19:11 2019
开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
我创建了一个初始串列,其内容为1->2->3->nullptr
然後想新增一个新的串列在初始串列的头端,
预期的结果为0.5->1->2->3->nullptr
我试了两种打法,一种是使用副函式的形式,另一种则是直接打在主函式内
在主函式内成功,并且印出串列为0.5->1->2->3
但在副函式内完成,印出的串列却是1->2->3
想请问一下问题在哪里?
喂入的资料(Input):
链结串列 1->2->3->nullptr
预期的正确结果(Expected Output):
0.5->1->2->3
错误结果(Wrong Output):
1->2->3
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
撰写在主函式内
https://ideone.com/Uq3MFP
撰写在副函式内
https://ideone.com/RPwGvy
补充说明(Supplement):
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.241.112.1
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1555237156.A.D9D.html
1F:推 b0920075: 这两个code不是一样吗....?还是我眼花了 04/14 18:41
※ 编辑: s890269 (111.241.112.1), 04/14/2019 19:22:59
2F:→ s890269: 我刚刚发现贴错了,现在已经修改程式码连结了 04/14 19:23
3F:→ firejox: 你那是传指标值,需要有return 指标 04/14 19:25
4F:→ sarafciel: insert_head(node *list) -> insert_head(node *&list) 04/14 19:41
5F:→ s890269: 感谢大家帮忙,f大和s大的方法都可以,但我有试过在中间 04/14 20:24
6F:→ s890269: 插入节点,参数用node*即可,是因为对开头做修改的差别? 04/14 20:27
7F:→ sarafciel: 精确点讲 你原本的写法是把开头指标复制一份 然後修改 04/14 20:41
8F:→ sarafciel: 到复制的那一份指标 所以原本的那个指标没有被影响 04/14 20:42
9F:→ sarafciel: 而他们後面指到的东西你并没有复制 所以在後面作插入会 04/14 20:43
10F:→ sarafciel: 两边都看到 04/14 20:43
11F:推 gaexpa066454: 你的head指向哪? 04/15 20:32
12F:推 Gway: 请传list 的address 给 fun 因为你只传pointer 会是call by 04/16 17:46
13F:→ Gway: value 传递 04/16 17:46