Я новичок в Linux с программированием и у меня есть простая программа только для обучения и, когда я скомпилировать это дает мне ошибку «разыменования указателя на неполную типа» вот мой кодПроблема с указателями
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++;
}
}
пожалуйста help ..
В какой строке отображается эта ошибка? –
В структуре List, где объявлен тип NodeList? Вы разыскиваете переменные этого типа позже. – vanza
'' ListNode * listNode = (ListNode *) calloc (1, sizeof (ListNode)); 'плохое кодирование. Его не _wrong_ или что-то, просто плохо C. Используйте ListNode listNode = malloc (sizeof (ListNode)); 'и не забудьте проверить, что' listNode! = NULL'. – alternative