Chiedo scusa avete ragione ma credetemi sto perdendo la testa con questo programmino.
comunque ho risolto in questo modo
iniziale->stradat=(struct strada **)malloc(sizeof(struct strada* )*6);
//creare la strada
for(i=0;i<5;i++){
iniziale->stradat[i]=(struct coda *)malloc(sizeof(struct coda));
printf("inserisci il nome della %d strada",i+1);
scanf("%d",&iniziale->stradat[i]->nome);
}
però vorrei capire meglio qual è la differenza dello scrivere cosi
iniziale->stradat=(struct strada **)malloc(sizeof(struct strada* )*5);
e scrivere così
iniziale->stradat=(struct strada *)malloc(sizeof(struct strada)*5);