这是一个返回链表的第n个节点的函数,但是编译器错误经常说返回类型应该是int。那是为什么?
struct Node *getNthNode(struct Node* head, int index)
{
if (head==NULL)
return NULL;
struct Node *current = head;
int count = 0;
while (current)
{
if (count == index)
return(current);
count++;
current = current->next;
}
答案 0 :(得分:2)
很可能你在声明函数之前调用了函数,所以默认返回int类型。我们必须看到整个文件才能确定。查找所有编译器警告。
int main() {
char* p;
p = foo(); // Compiler assumes default int return type
return 0;
}
char* foo() {
}
答案 1 :(得分:0)
如果while的条件不再是真的,你又会回来什么?
例如,如果列表中有10个元素,则将{20}作为index
参数传递。
如果您没有为该案例提供退货声明,则可能是问题所在。