human_array
- это массив указателей, поэтому вы должны объявить его таким же образом в get_Humans()
:
void gen_Humans(Human *array[], int n)
Тогда вам не следует разыменовывать указатель, который возвращает createHuman()
:
array[i] = createHuman(name, day, month, year);
Вы не показали printHuman()
, но оно также должно быть похожим. В нем вы можете напечатать отдельных людей с чем-то вроде:
printf("%s %d-%02d-%02d\n", array[i]->name, array[i]->Birth_date.year, array[i]->Birth_date.month, array[i]->Birth_date.day);