codice:
typedef struct List List;

void init(List *aux, char *el);
void add(List *aux, char *el);

struct List
{
  char *el; // l'elmento
  List *next; // il prossimo elemento della lista
};
// inizializza la lista
void init(List *aux, char *el)
{
  assert(aux != NULL);
  strcpy(aux->el, el);
  aux->next = NULL;
}
// aggiunge un elemento
void add(List *aux, char *el)
{
  assert(aux != NULL);
  while(aux->next != NULL)
   aux = aux->next;

  List *tmp;

  strcpy(tmp->el, el);
  tmp->next = NULL;

  aux->next = tmp;
}
// .....
// siamo nell'ipotetico main()
//...

List* head;
init(head);
//...
//nel tuo while
while(fgets(s,254,FileIn))
  
        {                
             if (strstr (s, par) != NULL)
                   {
                        add(head, s);
                        y++;
                   
                   }
             else 
                   
                        x++;
        }