1. calloc和malloc一样都是在堆区分配内存
  2. 不同点在于 calloc 会将分配的内存初始化为0
  3. realloc重新在堆区分配内存
    1. 如果分配的内存比原来要大,这个时候有两种情况出现
    2. 原有空间后序有足够大的空闲空间,那么直接在原有空间后继续开辟内存,返回原有空间的首地址
    3. 原有空间后序没有足够大空闲空间,重新会分配一个足够大的空间,并且将原有空间的内容拷贝到新空间下,释放原有空间,将新空间的首地址返回
void test01()
{int * p = malloc(sizeof(int)* 10);for (int i = 0; i < 10; i++){printf("%d\n", p[i]);}if (p != NULL){free(p);p = NULL;}
}

void test01()
{int * p = calloc(10, sizeof(int)); //和malloc不同的地方在于 将堆区分配的内容初始化为0for (int i = 0; i < 10; i++){printf("%d\n", p[i]);}if (p != NULL){free(p);p = NULL;}
}

void test02()
{int * p = malloc(sizeof(int) * 10);printf("%d\n", p);for (int i = 0; i < 10; i++){p[i] = i;}p = realloc(p, sizeof(int) * 10);for (int i = 0; i < 10; i++){printf("%d\n", p[i]);}printf("%d\n", p);if (p != NULL){free(p);p = NULL;}
}

calloc和realloc相关推荐

  1. 【C/C++】内存分配函数:malloc,calloc,realloc,_alloca

    [C/C++]内存分配函数:malloc,calloc,realloc,_alloca malloc: 原型:extern void *malloc(unsigned int num_bytes); ...

  2. malloc、calloc、realloc和free

    C 语言中开辟动态内存的有三个函数,分别为 malloc,calloc,realloc,释放内存的只有一个函数 free. realloc的使用是最容易犯错的,在写这篇博客前老师让我把realloc的 ...

  3. C语言动态内存开辟详解(malloc,calloc,realloc,free,柔型数组)

    目录 一.概述 二.相关库函数的使用 1.malloc 2.calloc malloc vs. calloc 异同 3.free的使用 4.realloc 三.易错点 四.C\C++程序的内存开辟规则 ...

  4. malloc、calloc、realloc、free、malloc_trim

    文章目录 malloc.calloc.realloc.free new和delete memset和memcpy malloc_trim() malloc.calloc.realloc.free ma ...

  5. malloc、alloc、calloc、realloc

    alloc alloc是向栈申请内存,因此无需释放. 功能:返回一个指向n个连续字符存储单元的指针.利用afree§释放已经分配的存储空间,以便以后使用. 函数原型: char *alloc(int ...

  6. C语言-动态内存管理(malloc()、calloc()、realloc()、free())

    C语言 动态内存分配 文章目录 C语言 动态内存分配 前言 一.为什么存在动态内存分配? 二.动态内存函数的介绍 1.初识malloc()和free() 2.malloc()和free()的简单使用 ...

  7. 动态内存分布——malloc,calloc,realloc,free的使用。以及关于动态内存的常见错误。

    我们知道内存的使用方式,可以在栈区,静态区,堆区,申请空间来储存变量. 但是他们这些内存区所存储的东西是不一样的. 局部变量 函数的形式参数 栈区 动态内存分配申请的空间 malloc,calloc, ...

  8. malloc、calloc、realloc的区别

    (1)C语言跟内存分配方式 <1>从静态存储区域分配.        内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量.static变量. <2&g ...

  9. malloc 初始化_关于内存分配malloc、calloc、realloc的区别

    (1) malloc() 在内存的动态存储区中分配一块长度为size字节的连续区域,参数size为需要内存空间的长度,返回该区域的首地址 (2) calloc() 与malloc相似,参数sizeOf ...

  10. malloc,calloc和realloc函数

    malloc:分配内存,不初始化 calloc:清零分配,初始化为0 realloc:重新分配,不初始化

最新文章

  1. 当ABAP遇到OLE
  2. 学校计算机教学演示,案例演示在计算机基础教学中的运用
  3. SMPP Java示例(客户端)
  4. 数据库设计:范式与反范式
  5. python调用msf_使用python操纵metasploit简单小记
  6. 安装Windows 和linux双系统失败导致Windows无法引导的解决方法
  7. IIS——屏蔽返回的Header中的 IIS版本信息
  8. HenCoder Android 开发进阶:自定义 View 1-3 drawText() 文字的绘制
  9. Eplan P8 2.7 win10 激活失效
  10. Java依赖包下载地址
  11. win10企业版如何改为专业版?
  12. 微信HOOK发送Emoji表情
  13. 微软大战Google Earth的利器-虚拟3D地球“Virtual Earth3D”!
  14. android 生成bks_android双向认证(自签名证书) bks的生成方法
  15. java 调用弗雷_JAVASE(九)面向对象特性之 : 继承性、方法重写、关键字super、
  16. win10无法装载iso文件_Windows 10更新后无法装载iso虚拟光盘
  17. 电脑开机自动联服务器,如何让Mac开机自动连接到NAS或网上邻居上的电脑
  18. 证券考试和基金考试有什么区别?
  19. 存储新图谱:DNA存储的边界与天地
  20. 工行接口对接(开户H5、SFTP文件对帐、e支付H5、e支付回调等)

热门文章

  1. 创业工场麦刚:不要把创业美化
  2. fluent6.3如何制作动画
  3. SpringSecurity 403 forbidden
  4. 那一年,我进传销了……(作者亲身经历)
  5. 【绘画素材】日系插画“人物表情”素材参考!告别脸部僵硬~
  6. Mysql 分表分区
  7. Android中仿微信选择图片并展示在RecyclerView中
  8. pyqt5 从本地选择图片 并显示在label上
  9. STK10与MATLAB互联
  10. c++贪吃蛇源代码 完整版