В C приведение результата из malloc не нужно и не должно выполняться. Это может, например, скрыть ошибку, связанную с ошибкой #include <stdlib.h>
, поэтому у вас нет прототипа для malloc в области видимости. Это, в свою очередь, может привести к другим ошибкам и отсутствию переносимости (хотя худшие нарушители в этом отношении в основном устарели).
В C ++ вы должны приводить результат malloc, чтобы присвоить ему указатель на любой тип, кроме void. Однако, если вам не нужно для написания кода, который можно скомпилировать как C или C ++, вам, как правило, следует вообще избегать использования malloc
в C ++ и выделять память с помощью new
.