Ho un problema che credo di capire ma non so risolvere, in pratica devo fare una funzione che mi prenda in ingresso un puntatore e mi restituisca il puntatore 'popolato' dai dati letti da file e la lunghezza dell'array. Quindi ho fatto qualcosa del genere:
codice:
int leggi(char* nomefile,double* x){
 /*Legge le accelerazioni da file*/
 const int MAX_VALUES=200;
 double tempx[MAX_VALUES];
 FILE *dati;
 char stream[10];
 int j=0,read,dim;
 
 dati = fopen(nomefile,"r");
 if(dati==NULL){/*GESTIRE*/;}  
 while(!feof(dati) & j<MAX_VALUES){  
   read=fscanf(dati,"%s",&stream); 
   if(read<=0)break;
   tempx[j]=atof(stream);    
   j++;
  }
 fclose(dati); 
 dim=j; 
 //Crea i vettori 
 x=new double[dim];
 //Copia i vettori
 for(int i=0;i<dim;i++){
   x[i]=tempx[i];
  } 
 return dim; 
}
La funzione in pratica alloca un nuovo array e lo assegna al puntatore passato alla funzione e poi lo popola con i valori presenti nell'array letto. Il problema è che poi quando richiamo la funzione dal main il puntatore non punta + a nulla!! Credo sia un problema di scope, cioè avendo allocato l'array all'interno della funzione all'esterno poi non è più disponibile.
E' così? allora come risolvo?
Grazie