ошибка: разыменование указателя на неполный тип 'struct student' root-> next-> student_number = 17; - PullRequest
0 голосов
/ 08 октября 2018
//------libraries
#include <stdio.h>  //library for basic input/output
#include <stdlib.h> //library for memory allocations

//------structures
typedef struct{
    unsigned short int student_number;
    struct student *next;
}student;

int main( void){
    student *root;
    root = (student *)malloc(sizeof(student));

    root->student_number = 5;   //works
    printf("root student_number = %d\n", root->student_number);

    root->next = (student *)malloc(sizeof(student));
    root->next->student_number = 17;           //here is the problem
    printf("root->next = %d\n", root->next->student_number);
}

Я создал структуру студент .Определен корень, который указывает на первый элемент связанного списка.Можно добраться до первого элемента списка связанных ссылок (вывести root-> student_number).Пока все хорошо: выделена память для второго элемента связанного списка (root-> next), но я не могу присвоить значение переменной student_number, печатаем соответственно.Как можно достичь второго и следующих элементов связанного списка?буду так рад за помощь :)

1 Ответ

0 голосов
/ 08 октября 2018

Вы typedef редактировали анонимную структуру.struct student не существует.Попробуйте это:

typedef struct student{
    unsigned short int student_number;
    struct student *next;
}student;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...