Не могу понять, почему я получаю эту ошибку: несовместимые типы при назначении типу PERSON из типа PERSON.
Я достаточно уверен, что вы не получите эту ошибку, но если вы действительно это сделаете, вам следует переключиться на лучший компилятор. Я полагаю, что ошибка, которую вы получаете вместо
Incompatible types when assigning to type PERSON * from type PERSON
, потому что это именно то, что вы пытаетесь сделать, учитывая ваше объявление функции read_array()
.
Из реализации и использования выясняется, что вы хотите, чтобы эта функция возвращала указатель на структуру, а не ее копию. Это было бы
PERSON *read_array(int n);
... и то же самое в определении функции.