Ho risolto mettendo l'apertura del file e  quindi la dichiarazione delle variabili nel sottoprogramma, ma non fa il suo dovere:
MAIN
using namespace std;
int main (int argc, char * const argv[]) {
  
	
	
	matrice m;
	int r;
	
	vettore v;
	int riemp;
	
	inserisciInMatrice( m,  r);
	
	leggiDaFile(v,riemp);
	
	
	
	
	
    return 0;
}
Header
#ifndef mamma
#define mamma
#define N 100
#define R 20
#include <fstream>
typedef char nomi [R];
typedef nomi matrice[N][N];
typedef nomi vettore[N];
void inserisciInMatrice(matrice & m,int & r);
void leggiDaFile(vettore & v,int & riemp);
#endif
 FUNZIONI
#include "func.h"
#include <iostream>
#include <fstream>
using namespace std;
void inserisciInMatrice(matrice & m,int & r){
	cout<<"\nDefinisci la tua matrice :";
	cout<<"\nQuante righe e colonne deve avere la tua matrice quadrata?";
		cin>>r;
	
	cout<<"\nRiempi la matrice";
		for(int i=0;i<r;i++){
			for(int j=0;j<r;j++){
				cout<<"\nInserisci un nome\n";
				cin>>m[i][j];
			}
		}
		// Stampa della matrice
	for(int i=0;i<r;i++){
		for(int j=0;j<r;j++){
			
			cout<<m[i][j]<<" ";}
		cout <<endl;
	}
}
[color=#FF0000]///////////////////////////////////////Questa è la funzione in questione//////////////////[/color]
void leggiDaFile(vettore & v,int & riemp ){
	
	ifstream in;
	
	in.open("/Users/Genna/Desktop/fondamenti di informatica/algoritmi di base/prove d'esame/comparare a e o/preappello/nomi.txt",ios::in);
	
	cout<<"Quanti nomi ci sono nel tuo file?";
	cin>>riemp;
	
	for (int i=0;i<riemp;i++){
	 in>>v[i];
		cout<<v[i];
		
		in.close();
	}
}