注:我已經得到了預期的功能,使用我自己的代碼,但我看到另一個網站上的教程,並且想知道爲什麼它不起作用。基本的C鏈表語法錯誤
https://www.eskimo.com/~scs/cclass/int/sx8.html
前提如下:
我有一個非常基本的鏈表打轉轉:
typedef struct node {
int val;
struct node * next;
} node_t;
我想有一個函數刪除由值的條目。這是因爲如下:
int remove_by_value(node_t ** head, int val) {
for(head = &node_t; *head != NULL; head = &(*head)->next){
if ((*head)->val == val) {
*head = (*head)->next;
break;
}
}
}
然而,當調用這個函數,即我得到一個錯誤:
"prog.c:35:17: error: expected expression before 'node_t'
for(head = &node_t; *head != NULL; head = &(*head)->next){
^"
任何想法?這只是一個簡單的語法錯誤,我沒有看到?謝謝!
這是什麼'head =&node_t'用於? –
除了語法錯誤之外,拼接元素的邏輯是錯誤的。 –
嘗試「爲(; ...)」,i..e離開過tghe「頭= node_t」) –