Ma il tuo è un programma in C...
Mi sa che hai un pò di confusione in testa...
Comunque è proprio l'utilizzo di malloc che richiede il cast al tipo che deve ospitare la memoria, non è che puoi ometterlo...