typedef struct listaCaratteri
{ int volte;
char lettera;
struct listaCaratteri *suc;
}Lc;

è sbagliato scrivere:

typedef struct listaCaratteri
{ int volte;
char lettera;
struct listaCaratteri *suc;
};

e anche:

typedef struct listaCaratteri
{ int volte;
char lettera;
struct listaCaratteri *suc;
}listaCaratteri;

il primo è corretto.
tks