是
pointer = (int*)realloc(0, sizeof(int))
一个有效的表达?
我觉得,由于
realloc
的第一个参数是一个指针,并且这里是0(为OS保留的内存地址),因此该语句不应是有效的。有人可以评论声明的有效性吗? 最佳答案
这是有效的声明。
C标准的§7.22.3.5:
void *realloc(void *ptr, size_t size);
如果
ptr
是空指针,则realloc函数的行为类似于malloc函数的行为。指定的大小。否则,如果ptr与内存较早返回的指针不匹配
管理功能,或者通过调用free或
realloc函数,行为未定义。如果无法存储新对象
分配后,旧对象不会被释放,并且其值不变。
关于c - C中realloc()函数的有效性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20879149/