Ciao,

non riesco a capire bene il codice (forse sarebbe meglio usare i tag [CODE] ), ma nella tua struct hai due puntatori a char...e li assegni nella funzione dandogli l'indirizzo di due variabili locali! (nomemese[] e orario sono dichiarate all'interno della funzione, quando la funzione ritorna...puff...).

Quando torni al main non credo che la memoria dove puntano sia ancora valida...e quindi....

Non puoi usare delle stringhe?

Poi non so se è più corretto che "domani" lo dichiari come puntatore e lo passi alla funzzione (e nella funzione allochi "oggi" con malloc)