Originariamente inviato da Who am I
1) Il cast implicito l' ho sempre usato per non avere warning dal compilatore.
Probabilmente intendi il cast esplicito ...

Originariamente inviato da Who am I
Ma so che c'è compatibilità di tipo per cui non è strettamente necessario.Ma può essere considerato un errore fare il cast pur essendo "inutile"?
No, non può essere considerato un errore.

2)Il mio professore all' università ha sempre insistito perché usassimo sizeof(char), che potrebbe anche ritornare 2 su certe macchine.Ma da quel che vedo ritorna sempre 1, è necessario specificare sizeof(char)? Può comunque essere fatto per correttezza?
Proprio perché *teoricamente* non sai quanto può essere grande un char, è corretto usare *sempre* il sizeof(char) come dice il tuo professore.

Volendo riscrivere questa linea di codice come la riscrivereste nella maniera più corretta possibile?
Non mi pare ci siano problemi con quella linea di codice.