Vi chiedo una grossa mano. Ho scritto questo programma, una volta compilato lo avvio e mi funziona fino al momento di fare la stampa nel main (mi inizia a stampare dei simboli strani e poi windows lo chiude). Ho messo degli "stampa" di prova nella funzione e vedo così che il vettore si carica correttamente. Cosa può essere a non andare? Succede qualcosa tra il passaggio del vettore dalla funzione al main secondo me...Grazie mille!
#include<stdio.h>
typedef struct{
char destinazione[21];
char tipologia;
float costo;
int data;
}viaggio;
typedef viaggio viaggi[100];
int carica(viaggi v, int dim){
char risp='s';
while(risp=='s'){
printf("IInserire destinazione: ");
scanf("%s", v[dim].destinazione);
printf("Inserire tipologia (A: all inclusive H: Hotel V: Viaggio): ");
scanf("%1s", &v[dim].tipologia);
printf("Inserire costo: ");
scanf("%f", &v[dim].costo);
printf("Inserisci data (gg/mm/aa): ");
scanf("%d", &v[dim].data);
printf("Inserire altro viaggio?(s/n): ");
scanf("%1s", &risp);
dim++;}
return (dim);
}
void stampa(viaggi v, int dim){
int i;
for(i=0;i<dim;i++){
printf("/n %s %c %f %d", v.destinazione, v.tipologia, v.costo, v.data);}
}
int main(){
viaggi v;
int dim=0, i;
dim=carica(v, dim);
stampa(v, dim);
return 0;
}