Ciao a tutti,
dovrei creare una funzione che inserisce in una lista (lintA) i numeri primi contenuti in un'altra lista (lintT). Come prototipo della funzione vorrei usare TABR *insNPrimi(TABR *lista). Di seguito la prima parte del programma:
codice:
#include<stdio.h> 
#include<stdlib.h> 

typedef struct nd{ 
  int val; 
  struct nd *next; 
}TABR; 

TABR *newLista(); 
TABR *addLista(TABR *lista, int num); 
void printLista(TABR *lista); 

int main(){ 
  TABR *lintA; 
  TABR *lintT; 
  FILE *fp; 
  int num; 
  lintA=newLista(); 
  lintT=newLista(); 
  fp=fopen("dati.txt", "r"); 
  while(fscanf(fp, "%d", &num)!=EOF){ 
    lintT=addLista(lintT, num); 
  } 
  fclose(fp); 
  printf("\n Lista 'lintT':\n\n"); 
  printLista(lintT); 
  printf("\n\n"); 
  system("PAUSE"); 
  return 0; 
} 

TABR *newLista(){ 
  return NULL; 
} 

TABR *addLista(TABR *lista, int num){ 
  TABR *temp; 
  TABR *i; 
  temp=(TABR *)malloc(sizeof(TABR)); 
  if(temp==NULL){ 
    printf("Errore di memoria!\n"); 
    exit(-1); 
  } 
  else{ 
    temp->val=num; 
    temp->next=NULL; 
  } 
  i=lista; 
  if(lista==NULL){ 
    return temp; 
  } 
  else{ 
    while(i->next!=NULL){ 
      i=i->next; 
    } 
    i->next=temp; 
    return lista; 
  } 
} 

void printLista(TABR *lista){ 
  if(lista==NULL){ 
    printf("Lista vuota!\n"); 
  } 
  else{ 
    while(lista!=NULL){ 
      printf("%4d", lista->val); 
      lista=lista->next; 
    }
  } 
}
Qualcuno sa dirmi come posso fare? Grazie mille