Non riesco a venirne fuori   
 
	codice:
	void addnodo(percorso *p, char *s, int oa, int op){
	(*p).n=(*p).n +1;
	int v=(*p).n;
	(*p).nodi=realloc((*p).nodi, (*p).n*sizeof(nodo));
	strcpy((*p).nodi[v-1].idstaz, s);
	printf ("idstazione: %s\n", (*p).nodi[v-1].idstaz);
	(*p).nodi[v-1].oraArr=oa;
	(*p).nodi[v-1].oraPart=op;
	printf("Ora arrivo: %d Ora partenza: %d \n", (*p).nodi[v-1].oraArr, (*p).nodi [v-1].oraPart);
}
int addpercorso(percorso **ps, char *s, int n){
	n++;
	*ps=realloc(*ps,n*sizeof(percorso));
	strcpy((*ps)[n-1].id, s);
	return 1;
	}
 
Ho un altra funzione che aggiunge dei nodi un determinato percorso però credo che non sia giusta neppure questa.
Le funzioni si riferiscono a queste strutture:
	codice:
	typedef struct nodo{
	char idstaz[10];
	int oraArr;
	int oraPart;
} nodo, *List;
typedef struct percorso{
	char id[10];
	int n;
	nodo *nodi;
	} percorso;
 
le chiamata ad addnodo è questa:
	codice:
	 addnodo(&percorsi[g], stazioni[j].id, stazioni[j].treni[h].oraArr, stazioni[j].treni[h].oraPart);