繼我的部分代碼沒有編譯:預計 '=', ';' ..之前 - >標記
struct Node {
int data;
struct Node *next;
}
struct Node head;
head->next = NULL;
錯誤消息說: 錯誤:預期 '=', '', ';','asm'或'attrivute'before' - >'標記 head-> next = NUL;
繼我的部分代碼沒有編譯:預計 '=', ';' ..之前 - >標記
struct Node {
int data;
struct Node *next;
}
struct Node head;
head->next = NULL;
錯誤消息說: 錯誤:預期 '=', '', ';','asm'或'attrivute'before' - >'標記 head-> next = NUL;
由於頭部結構,而不是指針,你可以用.
訪問元素:
head.next = NULL;
頭不是指針。使用'。':
head.next = NULL;
除此之外,您應該使用點來訪問成員,似乎您將可執行代碼放置在聲明部分。 head.next = NULL;
必須在函數內。
結構聲明可能出現在函數體內部 –
您應該使用.
而不是->
,並且要小心文件範圍,您的可執行代碼應該在函數內部。
嘗試:
#include<stdio.h>
struct Node {
int data;
struct Node *next;
}; //Remember the ;
int main(){
struct Node head;
head.next = NULL;
//...
return 0;
}
或者:
#include<stdio.h>
struct Node {
int data;
struct Node *next;
}; //Remember the ;
struct Node head;
int main(){
head.next = NULL;
//...
return 0;
}
的錯誤是你的結構定義後沒有分號:
struct Node {
int data;
struct Node *next;
} ; /* <==== here */
'頭戴式> next'只是一個shorcut對於'(* head).next',iff'head'是一個指針。在你的情況下,它不是,所以'頭'沒有意義。 – fanton
您的結構定義的右大括號後需要分號。 –