C语言malloc与calloc区别
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区别相关推荐
- malloc()与calloc区别【转】
转自:http://blog.csdn.net/firecityplans/article/details/4490124/ 版权声明:本文为博主原创文章,未经博主允许不得转载. Both the m ...
- malloc()与calloc区别
1.分配内存空间函数malloc 调用形式: (类型说明符) malloc (size) 功能:在内存的动态存储区中分配一块长度为"size" 字节的连续区域.函数的返回值为该区域 ...
- C语言malloc和calloc的区别
是否对申请的区域进行初始化而已 但是我想你也知道我们写程序的时候多用malloc而很少用calloc,何解? 因为calloc虽然对内存进行了初始化(全部初始化为0),但是同样也要降低效率的 call ...
- C语言 malloc calloc realloc
1.malloc void *malloc(size_t size); void free(void *ptr); 2.calloc void *calloc(size_t ...
- C语言-malloc()函数与calloc()函数的使用及区别
1.malloc()函数 功能 申请堆内存 所需头文件 #include<stdlib.h> 函数原型 void *malloc(size_t,size); 参数(size) 所申请的一块 ...
- malloc与calloc的区别
malloc()与calloc() C语言跟内存分配方式 1) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. ...
- malloc和calloc之间的区别?
做的有什么区别: ptr = (char **) malloc (MAXELEMS * sizeof(char *)); 要么: ptr = (char **) calloc (MAXELEMS, s ...
- C语言.内存管理malloc realloc calloc free memset bzero
=================== malloc realloc calloc free ==================== malloc.calloc.realloc的区别 (1)C语言跟 ...
- C语言-动态内存管理(malloc()、calloc()、realloc()、free())
C语言 动态内存分配 文章目录 C语言 动态内存分配 前言 一.为什么存在动态内存分配? 二.动态内存函数的介绍 1.初识malloc()和free() 2.malloc()和free()的简单使用 ...
- alloc()、malloc()、calloc()、realloc()区别及用法
C语言跟内存申请相关的函数主要有 alloca,calloc,malloc,free,realloc,sbrk等. 函数malloc()和calloc()都可以用来动态分配内存空间,但两者稍有区别. ...
最新文章
- Android JNI编程(六)——C语言函数指针、Unition联合体、枚举、Typedef别名、结构体、结构体指针...
- Jquery页面加载效果
- 《易学C++(第2版)》——1.10 习题
- BGP小实验——选路不困难,只要有方法
- [蛋蛋の插画日记]囧...居然漏了一期《可爱100》!
- 深入理解mysql系列_深入理解MySQL系列之锁
- 第十三节:Lambda、linq、SQL的相爱相杀(2)
- a标签的onclick事件_JavaScript提高:ASP.NET使用easyUI TABS标签显示问题
- 动态规划算法实验报告_动态规划与中心扩展算法
- android夸项目调用
- typedef 与结构体struct
- python 分词字典的词性_NLP注2“自定义词性与词典实现”,笔记,字典,的
- 手机app 与pc 软件测试区别,1,web测试,Android测试,Ios测试的共同点与
- 计算机组成原理学习笔记(7.I/O系统)
- JAVA_获取正常上班工作日-除去节假日_双休日_加上加班
- 6.IT服务运营管理
- 标星 3.6k+ 让你无所不能的工具
- Kth Excluded
- 黑苹果 【 I7 8700K z370 1060 和 I7 7700K z270 集显 的安装记录】
- 树莓派基础实验28:红外避障传感器实验
热门文章
- 独家连载 | 深度学习“四大天王”,你知道几个?
- 网络游戏(MMORPG) 好玩的原因
- 华为手机真机测试问题 The application could not be installed: INSTALL_FALLED_INTERNAL_ERROR
- 2020-01-16
- linux系统 ubuntu 使用GWE图形用户界面调整显卡风扇转速曲线
- Android组件化开发实践和案例分享 1
- 如何引用服务器lua文件,Lua教程(一):在C++中嵌入Lua脚本
- actionbar左上角的返回小图标
- 移动App性能管理 免费体验透视宝
- When Work Becomes a Game