Por que o compilador reclama quando não faço o resultado do malloc?

Eu estou inspecionando o código que não exige explicitamente o resultado da chamada malloc, mas sempre que tento fazer isso, o compilador lança um erro.

isto é

<code>char *somevar;
somevar = malloc(sizeof(char) * n); //error
somevar = (char *)malloc(sizeof(char) * n); // ok
</code>

questionAnswers(2)

yourAnswerToTheQuestion