Non conosco C\C++, ma in generale scrivendo
Non stai definendo una variabile locale che è un array di tipi float vuoto, probabilmente esistente solo nella funzione?codice:float mat_somma[MAX_DIM][MAX_DIM]
Inoltre se così fosse, provando a cancellare l'inizializzazione, avresti comunque un'errore per lo stesso discorso se però vale quanto detto sopra. Infatti, inizializzi la matrice mat_somma nella funzione somma, e se quanto detto è vero, allora questo array esiste solo nella funzione.
Praticamente l'array mat_somma, nel caso cancelli la definizione in salva_file, allora ti da errore perché non esiste, se non lo cancelli ti da errore perché potrebbe essere vuoto e per questo motivo potrebbe darti l'errore.
Io conosco il Java, però so che in sostanza queste cose sono molto simili se non addirittura uguali.

Rispondi quotando