In ogni caso, l'errore di accesso alla memoria è causato dal fatto che dovrebbe essere

codice:
        fscanf(input, "%s", (*list)[i].name);
        fscanf(input, "%s", (*list)[i].surname);
        fscanf(input, "%d", &((*list)[i].day));
        fscanf(input, "%d", &((*list)[i].month));
        fscanf(input, "%d", &((*list)[i].year));