我是linux c编程的新手,我有一个简单的程序只是为了学习,当我编译它时,它给我错误“解除指向不完整类型的指针”这里是我的代码
struct Node
{
struct Node* left;
struct Node* middle;
struct Node* right;
int nodeData;
int nodeLevel;
char isVisted;
};
struct ListNode
{
struct Node* data;
struct ListNode* next;
};
struct List
{
struct NodeList* head;
struct NodeList* tail;
int count;
};
typedef struct ListNode ListNode;
typedef struct Node Node;
typedef struct List List;
ListNode* InitListNode(Node* data)
{
ListNode* listNode=(ListNode*)calloc(1,sizeof(ListNode));
listNode->data=data;
listNode->next=NULL;
return listNode;
}
List* InitList()
{
List* list=(List*)calloc(1,sizeof(List));
list->count=0;
list->head=list->tail=NULL;
}
void EnQue(Node* data,List* que)
{
if(que->count==0)
{
que->tail=que->head=InitListNode(data);
que->count++;
}
else
{
que->tail->next=InitListNode(data); //here error is problem comes
que->tail=que->tail->next;//here error is problem comes
que->count++;
}
}
请帮助..
答案 0 :(得分:6)
struct List中的head和tail属于NodeList类型。应该是ListNode?
答案 1 :(得分:2)
您的List
定义中似乎有拼写错误。我认为它应该是ListNode
,而不是未定义的NodeList
。请尝试以下
struct List
{
struct ListNode* head;
struct ListNode* tail;
int count;
};