Правильно выделить память под односвязный список - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д