-3

これは、リンクされたリストの 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;
    }
4

2 に答える 2

2

ほとんどの場合、宣言する前に関数を呼び出しているため、デフォルトで int 型が返されます。確実に知るには、ファイル全体を確認する必要があります。すべてのコンパイラ警告を探します。

int main() {
    char* p;
    p = foo();   // Compiler assumes default int return type
    return 0;
}

char* foo() {
}
于 2013-03-26T03:52:53.990 に答える
0

while の条件が true でなくなった場合、何を返しますか?

たとえば、リストに 10 個の要素があり、indexパラメーターとして 20 を渡すとします。

その場合に return ステートメントを提供しない場合、それが問題になる可能性があります。

于 2013-03-26T03:49:50.370 に答える