Assignment from incompatible pointer type - C (СИ) (74727)
Формулировка задачи:
assignment from incompatible pointer type
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
typedef struct{
char *fname;
char *sname;
char *ukrlit;
char *ukrlan;
char *math;
char *englan;
struct school *next;
}school;
school *create(char *fname,char *sname,char *ukrlit,char *ukrlan,char *math,char *englan)
{
school *i=malloc(sizeof(school));
i->fname=strdup(fname);
i->sname=strdup(sname);
i->ukrlit=strdup(ukrlit);
i->ukrlan=strdup(ukrlan);
i->math=strdup(math);
i->englan=strdup(englan);
i->next=NULL;
return i;
}
int main()
{
char fname[80];
char sname[80];
char ukrlit[30];
char ukrlan[30];
char math[30];
char englan[30];
school *a=NULL;
school *b=NULL;
for(;fgets(fname,80,stdin)!=NULL;){
printf("Введіть прізвище\n");
fgets(sname,80,stdin);
printf("Введіть оцінку з української літератури\n");
fgets(ukrlit,30,stdin);
printf("Введіть оцінку з української мови\n");
fgets(ukrlan,30,stdin);
printf("Введіть оцінку з математики\n");
fgets(math,30,stdin);
printf("Введіть оцінку з англійської мови\n");
fgets(englan,30,stdin);
a=create(fname,sname,ukrlit,ukrlan,math,englan);
if(b==NULL)
b=a;
else
b->next=a;
b=a;
}
}Решение задачи: «Assignment from incompatible pointer type»
textual
Листинг программы
typedef struct school {
char *fname;
char *sname;
char *ukrlit;
char *ukrlan;
char *math;
char *englan;
struct school *next;
}
Объяснение кода листинга программы
- Создается структура данных
schoolс полями:- fname (тип char*)
- sname (тип char*)
- ukrlit (тип char*)
- ukrlan (тип char*)
- math (тип char*)
- englan (тип char*)
- next (тип struct school*)
- В структуре
schoolиспользуется указательnextдля хранения ссылки на следующий элемент в списке. - В данном коде не приводится пример использования данной структуры, поэтому нельзя точно сказать, что делает программа.