开发者社区> 问答> 正文

C 分配空间地址的问题

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

展开
收起
a123456678 2016-06-07 18:45:17 1740 0
1 条回答
写回答
取消 提交回答
  • realloc

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

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

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

    b) 分配一个新的new_size字节大的内存块,将和新旧大小中较小的一个一样大的内存区域复制过来,并释放旧的块。
    如果内存不足,旧的内存块不会被释放并且返回空指针。
    2019-07-17 19:30:45
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载