【发布时间】:2013-07-29 08:17:20
【问题描述】:
7.22.3.4 malloc 函数 malloc 函数为一个对象分配空间,该对象的大小由 size 指定,其值为 不确定。
原型:void *malloc(size_t size);
我尝试将负值作为参数传递:malloc(negative) 返回NULL。
是因为 [size_t] 负数转换为无符号 [某个大值] 并且无法分配所需的空间还是函数检查参数并返回 NULL?
如果它被转换为大正数,那么在调用malloc(INT_MIN+2) 时它仍然返回NULL,但malloc(0) 分配给指针并且*p = somevalue 有效。这个呢?
是否定义了实现?
阅读此链接:malloc(0)
【问题讨论】:
-
size_t是无符号类型ssize_t将被签名。