Domanda Il casting in C è sempre possibile?

Il cast da puntatore a puntatore è sempre possibile. Lo è anche per i tipi primitivi numerici (char, int, long, double...). Con le struct invece non è possibile fare cast tra altre struct o tipi base (avrebbe anche poco senso) però puoi fare cast del suo puntatore.