【发布时间】:2013-02-18 21:45:12
【问题描述】:
我正在尝试打印一个 char* 但 while 循环的链表的内容 正在弄乱代码:
获取链表中下一项的函数:
char * list_next(list *l)
{
list *currentPosition = NULL;
currentPosition = l->next; //since the first node is a dummy value in the singly linked list
while (currentPosition != NULL)
{
return currentPosition->charValue;
currentPosition = currentPosition->next;
}
return NULL;
}
在我的主要:
char * item;
while(item = list_next(list))
printf("%s ",item);
有人可以帮我吗?我很确定问题出在 while 内的回报 循环,但我似乎无法修复它
【问题讨论】:
-
请发布一个演示您的问题的最小程序。
-
如果你在 while 循环中返回,为什么不使用
if语句呢?我看到的另一个问题是您的列表可能以一个虚拟值开始,但是您遍历整个列表您的主要单元,因此只有一个虚拟值。 -
如果 l 作为 NULL 传入会发生什么?坏事。至少断言。
-
@ComFreek 我不能只使用 if 语句,因为我有超过 1 个具有 char 值的节点。我的问题基本上是如何在一个方法中返回超过 1 个字符*
标签: c