开发者社区> 问答> 正文

C 分配空间地址的问题

a123456678 2016-06-07 18:45:17 656

假设 malloc 分配的内存空间不足,realloc 在原来基础上继续分配,这两次分配出来的空间地址连续吗?

分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:30:45

    realloc

    在头文件 <stdlib.h> 中定义
    void *realloc( void *ptr, size_t new_size );

    重新分配给定的内存区域。该区域必须之前曾被malloc()、calloc()或realloc()所分配并且未被free()所释放,否则,其结果是未定义的。
    重新分配以下面两者之一完成:

    全选复制放进笔记 a) 扩大或收缩目前ptr所指向的区域,若可能的话。区域中的内容保持不变,直至到达新旧大小中较小的一个。如果区域被扩大,数组中新部分的内容是未定义的。

    b) 分配一个新的new_size字节大的内存块,将和新旧大小中较小的一个一样大的内存区域复制过来,并释放旧的块。
    如果内存不足,旧的内存块不会被释放并且返回空指针。
    0 0
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章