Одна из причин, по которой я мог придумать, заключается в том, что прототип malloc
отсутствует, учитывая компилятор до 99.
Неявный int (тип возвращаемого значения) устарел.Однако, если ваш код имеет ошибки, это означает, что компилятор предполагает, что функции (без какого-либо прототипа в области) по умолчанию возвращают целое число.В результате malloc
будет рассматриваться как возвращающее целое число вместо указателя.
В 32-битных реализациях sizeof(int)
и sizeof(void*)
- это 32 бита каждая.В 64-битных реализациях sizeof(int)
остается тем же, но sizeof(void*)
составляет 64 бита.
Возможно, проблема с указанием 64-битного указателя на 32 бита.
Включить <stdlib.h>
врешить проблему.