Ho quasi risolto così:
fgets(buffer,100,f); //leggo nome della 1a centralina dall'intestazione di Dati1.txt
printf("%s\n",buffer);
dim=strlen(buffer);
printf("lung buffer %d\n",dim);
nome1=(char*)malloc(sizeof(char)*dim);
strncpy(nome1,buffer,dim);
dim=strlen(nome1);
printf("%d %s\n",dim, nome1);
fgets(buffer,100,f2);
dim=strlen(buffer);
nome2=(char*)malloc(sizeof(char)*(strlen(buffer))) ;
strncpy(nome2,buffer,dim);
solo che dopo la strncopy mi stampa la stringa corretta e subito dopo dei caratteri strani :S e la dimensione passa da 23 a 30. Se nella strncpy metto al posto di nome1 *nome1 crash ugualmente..Non vorrei che quei caratteri strani siano l'indirizzo fisico boh
Ps. in mezzo ci sono printf per debuggare..