La matrice viene allocata tramite un funzione dedicata che oltre ad usare malloc la definisce con il contenuto di un file csv opportunamente formattato.
void caricamento_matrice(char *arg)
{
FILE *fp;
char buf[2000]={0};
int i=0;
int j,k;
char del[]=",";
if ((fp = fopen(arg,"r"))==NULL) {
printf("impossibile aprire il file.\n");
exit(1);
}
while(1) {
char *res=fgets(buf, 2000, fp);
if( res==NULL )
break;
char *a=strtok(buf,del);
char *nuova=(char *)malloc((strlen(a)+1)*sizeof(char));
strcpy(nuova,a);
matrice[i][0]=nuova;
for (j=1;j<N;j++) {
a=strtok(NULL,del);
char *nuova=(char *)malloc((strlen(a)+1)*sizeof(char));
strcpy(nuova,a);
matrice[i][j]=nuova;
}
i++;
}
fclose(fp);
}
il problema continua ad essere fgets che non mi funziona come dovrebbe, esiste un altro modo per acquisire stringhe con spazi vuoti? ...grazie per la pazienza!!!