Вы приводите результат из malloc к «указателю на A» и присваиваете его переменной типа «A». «А» означает «Сезон».
Возможно, с этой версией вашего кода станет понятнее
отредактировано для большего количества говорящих идентификаторов и исправлено с помощью правильной вещи внутри sizeof (), а не приведения результата malloc ().
typedef struct season* PointerToseason; // if you insist on hiding it inside a typedef
PointerToseason season1 = malloc(sizeof(struct season));
Широко предпочтительная версия этого
PointerToseason season1 = malloc(sizeof(*season1));
Требуется меньше знаний о вещах, которые были спрятаны внутри typedefs (мудро или нет).
Кроме того, внимательно посмотрите на слишком похожие идентификаторы в вашем коде season
и Season
.