il parametro "list" di read_file_1, da dove a arriva? come lo allochi? come glielo passi in chiamata?
EDIT: prova così:
;-)codice:PERSONA* read_file_2 (char* filename, int* dim); void read_file_1 (char* filename, PERSONA** list, int* dim){ *list = read_file_2 (filename, dim); }