Ecco qua l' utlima "versione" di get_string,legge riga per riga stringhe da stdin o da file (i dati vanno separati da newline).
codice:
char* get_string(FILE *fp,char*ptr)
{
    ptr=(char*)malloc(sizeof(char));
    int i=1;
    char ci;
    if(fp==stdin)
      fflush(fp);
    else
    {
        ci=fgetc(fp);
        if(ci!='\0')
          fseek(fp,-1,SEEK_CUR);
    }
    while(ci!=10)
    {
        ptr=(char*)realloc(ptr,i*sizeof(char));
        ci=fgetc(fp);
        if(ci!=10)
          ptr[i-1]=ci;
        else
          ptr[i-1]='\0';
        i++;
    }
    fflush(stdin);
    return ptr;
}