2013-03-26 55 views
-2

這是返回鏈表的第n個節點的函數,但有編譯器錯誤不斷說返回類型應該是int。這是爲什麼?返回鏈表的第n個節點的函數的返回類型錯誤

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; 
    } 
+1

您顯示的片段除了壞縮進之外沒有任何明顯的錯誤,但它不完整。請發佈一個完整的測試程序,我們可以爲自己編譯並查看問題。 – zwol 2013-03-26 03:48:22

+0

如果您發佈*未編輯*編譯器輸出,這也會很有幫助。 – zwol 2013-03-26 03:53:26

回答

0

如果條件不成立,你又回來了什麼?

例如,如果您的列表中有10個元素,並且您傳遞了20個參數作爲index參數。

如果您不提供該情況下的返回語句,那可能是問題所在。

2

你最有可能在聲明它之前調用函數,所以它默認返回int類型。我們必須看到整個文件才能確定。尋找所有的編譯器警告。

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

char* foo() { 
} 
+0

賓果.......... – 2013-03-26 04:32:35

相關問題