Правильно выделить память под односвязный список - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Не могу правильно выделить память под односвязный список. Укажите, пожалуйста, мою ошибку:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
void fill_list(struct slave *head,struct slave *tail);
struct slave
    {
        char* faculty;
        char* cathedral;
        char* name;
        int spec_code;
        char* spec_txt;
        int course;
        char* group;
        int marks[5];
        struct slave *next;
    };
void main()
{
    
    struct slave *head=NULL,*tail=NULL;
    fill_list(head,tail);
 
}
void fill_list(struct slave *head,struct slave *tail)
{
    struct slave *list=NULL;
    list=head=(struct slave*)calloc(1,sizeof(struct slave));
    if(list==NULL)
        exit(1);
    char c;
    for(int i=0;;i++)
    {
        printf("enter faculty\n");
        _cgets(list->faculty);
        printf("enter cathedral\n");
        _cgets(list->cathedral);
        printf("enter name\n");
        _cgets(list->name);
        printf("enter speciality code\n");
        scanf("%d",list->spec_code);
        printf("enter speciality name\n");
        _cgets(list->spec_txt);
        printf("enter course number\n");
        scanf("%d",list->course);
        printf("enter group name\n");
        _cgets(list->group);
        printf("enter marks\n");
        for(int j=0;j<5;j++)
            scanf("%d",list->marks[j]);
        printf("continue y/n\n");
        if((c=getchar())=='n')
            break;
        list->next=(struct slave*)malloc(sizeof(struct slave));
        list=list->next;
    }
tail=list;
list->next=NULL;
 
}
З.Ы. Сорри, что заголовок жирным шрифтом не выделен - неумет.

Решение задачи: «Правильно выделить память под односвязный список»

textual
Листинг программы
int main(){
    //...
    return 0;
}

Оцени полезность:

14   голосов , оценка 3.929 из 5
Похожие ответы