Скорее всего, потому что вы не включаете файл заголовка для malloc
и, хотя компилятор обычно предупреждает вас об этом, тот факт, что вы явно приводите возвращаемое значение, означает, что вы 'повторяя это, вы знаете, что делаете.
Это означает, что компилятор ожидает, что int
будет возвращен из malloc
, который затем будет приведен к указателю.Если они разных размеров, это вызовет у вас горе.
Вот почему вы никогда не разыгрываете malloc
возвращение в C. Возвращенное void*
будет неявнопреобразован в указатель правильного типа (если только вы не включили заголовок, в этом случае он, вероятно, предупредил бы вас о потенциально небезопасном преобразовании типа int в указатель).