ниже - это функция, которую я вызвал для чтения файла и сохранения в моем связанном списке
void getList(struct List **head)
{
struct List *navigator = *head;
FILE *fptr;
fptr = fopen("list.txt", "r");
for(int i = 0; i < MAX; i ++)
{
struct List *temp = malloc(sizeof(struct List));
fscanf(fptr, "%d %s %s %s %d %d %d %d\n", &temp->id, temp->name, temp->type, temp->desc, &temp->point1, &temp->point2, &temp->point3, &temp->point4);
if(navigator->next == NULL)
navigator->next = temp;
else
{
while(navigator->next != NULL)
navigator = navigator->next;
navigator->next = temp;
}
}
rewind(fptr);
fclose(fptr);
}
ниже структура списка, который я строю
struct List
{
int id;
char name[30];
char type[6];
char desc[7];
int point1;
int point2;
int point3;
int point4;
int point5;
struct List *next;
};
я вызываю функцию, чтобы прочитать данные ниже
1 cabbage vege green 1 2 3 4
2 cucumber vege green 2 4 6 8
3 celery vege green 3 4 5 6
эта функция работала при запуске в первый раз, но при втором запуске она выдает ошибку, и я уверен, что в первый раз она сможет прочитать все данные.
Почему и как это улучшить?