Проблема с указателями - PullRequest
1 голос
/ 29 августа 2010

Я новичок в программировании на 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++;
    }
}

, пожалуйста, помогите..

Ответы [ 2 ]

6 голосов
/ 29 августа 2010

голова и хвост в структуре List имеют тип NodeList.Должен ли быть ListNode?

2 голосов
/ 29 августа 2010

Похоже, в вашем определении List есть опечатка.Я считаю, что это должно быть ListNode, которое определено, а не NodeList, которое не определено.Попробуйте следующее

struct List
{
    struct ListNode* head;
    struct ListNode* tail;
    int count;
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...