Я не могу напечатать указатель на структуру, которая уже была определена - PullRequest
2 голосов
/ 16 мая 2019

Я немного смущен рядом этих объявлений.Я хочу создать связанный список для своей программы, но по какой-то причине он продолжает выдавать ошибку, когда я пытаюсь его скомпилировать.По сути, это будет моя основная модель узла, и у меня также есть другая структура после нее (БЕЗ ТИПА) для моего списка.Который компилируется просто отлично.Я не знаю что не так.

Я уже пытался поместить typedef поверх struct student.

typedef struct
{
    char name[50];
    int id;
    node next;

}student;

typedef student* node;

typedef struct listR* list;

struct listR
{
    node head,tail;
    int size;

};

Ошибка: неизвестное имя типа Предупреждение 'node': инициализация создает указатель из целого числа без преобразования

1 Ответ

2 голосов
/ 16 мая 2019

Компилятор не знает, что такое узел, потому что вы создаете тип узла после создания структуры.

Вы можете сделать либо:

typedef struct node node;

struct node
{
  char name[50];
  int id;
  node* next;
};

Чтобы сообщить компилятору, что такое узел,

Или

typedef struct node {
    char name[50];
    int id;
    struct node* next;
} node;
...