C 指针问题
我是LinuxC编程新手,我有一个简单的程序只是为了学习,当我编译它时,它会给我错误“取消引用指向不完整类型的指针”,这是我的代码C 指针问题,c,linux,C,Linux,我是LinuxC编程新手,我有一个简单的程序只是为了学习,当我编译它时,它会给我错误“取消引用指向不完整类型的指针”,这是我的代码 struct Node { struct Node* left; struct Node* middle; struct Node* right; int nodeData; int nodeLevel; char isVisted; }; struct ListNode { struct Node* data
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++;
}
}
请帮助。结构列表中的头和尾属于节点列表类型。应该是ListNode吗 结构列表中的头和尾是NodeList类型。应该是ListNode吗 看起来您对
列表的定义有误。我认为应该是已定义的ListNode
,而不是未定义的NodeList
。试试下面的方法
struct List
{
struct ListNode* head;
struct ListNode* tail;
int count;
};
看起来您对列表的定义有误。我认为应该是已定义的ListNode
,而不是未定义的NodeList
。试试下面的方法
struct List
{
struct ListNode* head;
struct ListNode* tail;
int count;
};
该错误显示在哪一行?在列表结构中,节点列表类型在哪里声明?以后可以取消对该类型变量的引用。“ListNode*ListNode=(ListNode*)calloc(1,sizeof(ListNode));
编码不好。这没有错,只是C不好。请使用ListNode*ListNode=malloc(sizeof(ListNode))
并记住检查listNode!=NULL
。结构列表中定义的NodeList在哪里?我看到的是listNode,但不是NodeList。您是否收到任何编译警告?该错误显示在哪一行?在列表结构中,声明的NodeList类型在哪里?您稍后将取消引用该类型的变量。“listNode*listNode”=(ListNode*)calloc(1,sizeof(ListNode));
编码不好。它没有错,只是C不好。使用ListNode*ListNode=malloc(sizeof(ListNode))
并记住检查listNode!=NULL
。结构列表中定义的NodeList在哪里?我看到了listNode,但没有NodeList。您是否收到任何编译警告?thanx很多解决方案都是有效的。但有一件事,为什么编译器没有给出任何错误,说明NodeList不存在,因为我没有创建此结构。NodeList确实存在-but仅作为一个不完整的类型。在您的情况下,这将转换为“尚未指定其成员的结构”。这正是编译器告诉您的。thanx很多解决方案都是有效的。但有一件事,为什么编译器没有给出任何错误,说明NodeList不存在,因为我没有创建此结构。NodeList确实存在,但只是作为一个不完整的类型。在您的情况下,这将转换为“尚未指定成员的结构”.这正是编译器告诉你的。