函数返回地址的问题

阿尔博特 2011-10-03 02:14:12
假设我已经建立好一个带头结点的单链表,现在我想写一个Locate函数来返回第i个结点的地址,如果在函数里定义一个指针返回第i个结点的地址,这是不可取的,因为不能返回一个局部指针的地址。对这个链表操作那么就要传入这个链表的有指针,如果在形参列表中传入头指针的话,那么在函数过程中头指针将会发生变化,请问这个Locate函数的形参列表该怎么写?请高手帮分析一下,在线等。
...全文
106 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hengshan 2011-10-03
  • 打赏
  • 举报
回复
列表中的节点内存一般情况下,都需要在heap内存区申请的,所以你列表中某个节点的指针是正确的。
iamnobody 2011-10-03
  • 打赏
  • 举报
回复
楼上正解,返回一个局部变量的值是可以的。返回一个局部变量的指针是不行的。
但是这个局部变量本身就是指针的话,那么如果要返回他的指针的话结果就是返回一个指针的指针。但是你返回的只是指针而已。还是要研究下指针啊。
太乙 2011-10-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hqin6 的回复:]

lz对传递引用和传递参数还是没认识透彻啊~
[/Quote]
Node* Locate(Node* head, int n)
{
Node* p = head;
while (n-- && p)
{
p = p->next;
}
return p;
}
太乙 2011-10-03
  • 打赏
  • 举报
回复
lz对传递引用和传递参数还是没认识透彻啊~

64,687

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧