что происходит, когда мы вызываем Malloc с отрицательным параметром?
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
работает. Как насчет этого?
Определена ли реализация?
Прочитайте эту ссылку:таНос (0)