7.22.3.4 Функция malloc Функция malloc выделяет пространство для объекта, размер которого задан по размеру и значение которого равно неопределенными.
Прототип: void *malloc(size_t size);
Я попытался передать отрицательное значение в качестве параметра: malloc(negative)
возвращает NULL
.
Это потому, что отрицательный параметр [size_t] преобразован в unsigned [некоторое большое значение] и не может выделить требуемое пространство или является параметром проверки функции и возвращает NULL
?
Если его преобразование в большой положительный, то при вызове malloc(INT_MIN+2)
он все равно возвращает NULL
, но malloc(0)
выделен для указателя и *p = somevalue
работает. Как насчет этого?
Определена ли реализация?
Прочитайте эту ссылку: malloc (0)