假设 malloc 分配的内存空间不足,realloc 在原来基础上继续分配,这两次分配出来的空间地址连续吗?
realloc
在头文件 <stdlib.h> 中定义
void *realloc( void *ptr, size_t new_size );
重新分配给定的内存区域。该区域必须之前曾被malloc()、calloc()或realloc()所分配并且未被free()所释放,否则,其结果是未定义的。
重新分配以下面两者之一完成:
全选复制放进笔记 a) 扩大或收缩目前ptr所指向的区域,若可能的话。区域中的内容保持不变,直至到达新旧大小中较小的一个。如果区域被扩大,数组中新部分的内容是未定义的。
b) 分配一个新的new_size字节大的内存块,将和新旧大小中较小的一个一样大的内存区域复制过来,并释放旧的块。
如果内存不足,旧的内存块不会被释放并且返回空指针。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。