這可能是一個愚蠢的問題,我看到類似的問題被問到,但我沒有得到答案。爲什麼下面的代碼產生:C中的類型問題
error: incompatible types when assigning to type ‘node_t’ from type ‘struct node_t *’
node_t list_array[10];
typedef struct node
{
int value;
struct node *next;
struct node *prev;
} node_t;
node_t* create_node(void)
{
node_t *np;
np->next = NULL;
np->prev = NULL;
np->value = rand() % 10;
return np;
}
int main(void)
{
int i;
for(i = 0; i < 10; i++)
{
list_array[i] = create_node();
}
return 0;
}
爲什麼你有擁有10個'node_t'對象的全局數組,當你顯然要在實現雙向鏈表時動態創建節點?不會是指向'root'節點的簡單指針嗎? – LihO 2013-02-11 10:55:45
@LihO,也許德克斯特想要十個不同的鏈表:-) – paxdiablo 2013-02-11 10:57:02
@paxdiablo:那麼,這也可以解釋名字'list_array'。 :)但我不認爲他想創建10個鏈接列表並使用此數組來存儲10個根節點。 – LihO 2013-02-11 10:59:20