Grazie per i suggerimenti e per la risposta,mi è già più chiaro come fare.
Al momento il mio più grande dubbio è su come passare la struttura ad una funzione (la funzione serve ad esempio per aggiungere note o per fare una ricerca),se scrivo ad esempio:
codice:
typedef enum day{DOMENICA,ecc...}
typedef enum month{GENNAIO,ecc...}
typedef struct data
{
    month mese;
    day giorno;
    char *nota;
    struct data *ptr;   //Forse mi servirà per gestire la pila di struct;
};
void inserisci_dati(data*);
int main ()
{
    data *oggi;
    oggi=(data*)malloc(sizeof(data));
    inseriscinota(oggi);
    /*adesso voglio passare ad inserire i dati nella struttura tramite una funzione*/
......
void inserisci_dati(data*p)
{
    *p.giorno=LUNEDI;    /*ecco che partono gli errori*/
Io alla funzione gli passo il puntatore alla struttura,subito mi da errore: "giorno has not been declared",come dovrei fare?