codice:
void crea_lista(FILE *input, data **lista)
{
 char *stringa[20],buff[20];
 int j=0,i;
 while(fscanf(input,"%s",buff)>0)
 {
  stringa[j]=(char*)malloc(20*sizeof(char));
  strcpy(stringa[j],buff);
  j++;
  }
  stringa[j]=(char*)malloc(20*sizeof(char));
  strcpy(stringa[j],"null");
  for(i=0;strcmp(stringa[i],"null")!=0;i++)
  {
   lista[i]=(data*)malloc(sizeof(data));
   lista[i]->word=(char*)malloc(20*sizeof(data));
   strcpy(lista[i]->word,stringa[j]);
   lista[i]->dim=strlen(lista[i]->word);
   lista[i]=lista[i+1]->successivo;
  }
  lista[i+1]->successivo=NULL;
  }
non accetta l'allocazione di word, perchè?