返回链表的第n个节点的函数的错误返回类型

时间:2013-03-26 03:46:18

标签: c compiler-errors

这是一个返回链表的第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;
    }

2 个答案:

答案 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参数传递。

如果您没有为该案例提供退货声明,则可能是问题所在。