C语言malloc与calloc区别

区别

开门见山,malloc与calloc在内存分配时,前者分配一整块,后者分配n块,并且后者在分配时会将内存置为0,前者不会内存里是垃圾数据。

另外它们参数不同,malloc参数只有一个无符号整型的num表示分配的字节数,函数原型如下

void *malloc(size_t num);

calloc参数有两个,分别是无符号整型num表示分配的对象的个数,以及无符号整型size表示每个对象的大小

void *calloc(size_t num, size_t size);

用法

它们在用法上相似,可以起到相同的效果,并且都返回内存的首地址。

以分配容纳5个int整型的空间为例,代码如下

malloc用法

#include <stdio.h>
#include <stdlib.h>int main()
{int *p = (int*)malloc(5*sizeof(int));for(int i=0; i<5; i++)p[i]=i;for(int i=0; i<5;i++)printf("%d ",p[i]);return 0;
}

calloc用法

#include <stdio.h>
#include <stdlib.h>int main()
{int *p = (int*)calloc(5,sizeof(int));for(int i=0; i<5; i++)p[i]=i;for(int i=0; i<5; i++)printf("%d ",p[i]);return 0;
}

运行结果

运行结果相同

0 1 2 3 4

C语言malloc与calloc区别相关推荐

  1. malloc()与calloc区别【转】

    转自:http://blog.csdn.net/firecityplans/article/details/4490124/ 版权声明:本文为博主原创文章,未经博主允许不得转载. Both the m ...

  2. malloc()与calloc区别

    1.分配内存空间函数malloc 调用形式: (类型说明符) malloc (size) 功能:在内存的动态存储区中分配一块长度为"size" 字节的连续区域.函数的返回值为该区域 ...

  3. C语言malloc和calloc的区别

    是否对申请的区域进行初始化而已 但是我想你也知道我们写程序的时候多用malloc而很少用calloc,何解? 因为calloc虽然对内存进行了初始化(全部初始化为0),但是同样也要降低效率的 call ...

  4. C语言 malloc calloc realloc

    1.malloc        void *malloc(size_t size);        void free(void *ptr); 2.calloc void *calloc(size_t ...

  5. C语言-malloc()函数与calloc()函数的使用及区别

    1.malloc()函数 功能 申请堆内存 所需头文件 #include<stdlib.h> 函数原型 void *malloc(size_t,size); 参数(size) 所申请的一块 ...

  6. malloc与calloc的区别

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

  7. malloc和calloc之间的区别?

    做的有什么区别: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); 要么: ptr = (char **) calloc (MAXELEMS, s ...

  8. C语言.内存管理malloc realloc calloc free memset bzero

    =================== malloc realloc calloc free ==================== malloc.calloc.realloc的区别 (1)C语言跟 ...

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

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

  10. alloc()、malloc()、calloc()、realloc()区别及用法

    C语言跟内存申请相关的函数主要有 alloca,calloc,malloc,free,realloc,sbrk等. 函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别.  ...

最新文章

  1. Android JNI编程(六)——C语言函数指针、Unition联合体、枚举、Typedef别名、结构体、结构体指针...
  2. Jquery页面加载效果
  3. 《易学C++(第2版)》——1.10 习题
  4. BGP小实验——选路不困难,只要有方法
  5. [蛋蛋の插画日记]囧...居然漏了一期《可爱100》!
  6. 深入理解mysql系列_深入理解MySQL系列之锁
  7. 第十三节:Lambda、linq、SQL的相爱相杀(2)
  8. a标签的onclick事件_JavaScript提高:ASP.NET使用easyUI TABS标签显示问题
  9. 动态规划算法实验报告_动态规划与中心扩展算法
  10. android夸项目调用
  11. typedef 与结构体struct
  12. python 分词字典的词性_NLP注2“自定义词性与词典实现”,笔记,字典,的
  13. 手机app 与pc 软件测试区别,1,web测试,Android测试,Ios测试的共同点与
  14. 计算机组成原理学习笔记(7.I/O系统)
  15. JAVA_获取正常上班工作日-除去节假日_双休日_加上加班
  16. 6.IT服务运营管理
  17. 标星 3.6k+ 让你无所不能的工具
  18. Kth Excluded
  19. 黑苹果 【 I7 8700K z370 1060 和 I7 7700K z270 集显 的安装记录】
  20. 树莓派基础实验28:红外避障传感器实验

热门文章

  1. 独家连载 | 深度学习“四大天王”,你知道几个?
  2. 网络游戏(MMORPG) 好玩的原因
  3. 华为手机真机测试问题 The application could not be installed: INSTALL_FALLED_INTERNAL_ERROR
  4. 2020-01-16
  5. linux系统 ubuntu 使用GWE图形用户界面调整显卡风扇转速曲线
  6. Android组件化开发实践和案例分享 1
  7. 如何引用服务器lua文件,Lua教程(一):在C++中嵌入Lua脚本
  8. actionbar左上角的返回小图标
  9. 移动App性能管理 免费体验透视宝
  10. When Work Becomes a Game