realloc,malloc,calloc的区别_Hey realloc函数和malloc

三个函数的申明分别是:
void* realloc(void* ptr, unsignednewsize);
void* malloc(unsigned size);
void* calloc(size_t numElements, size_tsizeOfElement);
都在stdlib.h函数库内

它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL

malloc用于申请一段新的地址,参数size为需要内存空间的长度,如:
char* p;
p=(char*)malloc(20);

calloc与malloc相似,参数sizeOfElement为申请地址的单位元素长度,numElements为元素个数,如:
realloc,malloc,calloc的区别_Hey realloc函数和malloc
char* p;
p=(char*)calloc(20,sizeof(char));
这个例子与上一个效果相同

realloc是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度
如:
char* p;
p=(char*)malloc(sizeof(char)*20);
p=(char*)realloc(p,sizeof(char)*40);

注意,这里的空间长度都是以字节为单位。


C语言的标准内存分配函数:malloc,calloc,realloc,free等。
malloc与calloc的区别为1块与n块的区别:
malloc调用形式为(类型*)malloc(size):在内存的动态存储区中分配一块长度为“size”字节的连续区域,返回该区域的首地址。
calloc调用形式为(类型*)calloc(n,size):在内存的动态存储区中分配n块长度为“size”字节的连续区域,返回首地址。
realloc调用形式为(类型*)realloc(*ptr,size):将ptr内存大小增大到size。

malloc不进行初始化,calloc初始化为0


free的调用形式为free(void*ptr):释放ptr所指向的一块内存空间。
C++中为new/delete函数。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/260837.html

更多阅读

电脑待机与休眠的区别 电脑待机和休眠的区别

电脑待机与休眠的区别? ? 首先确定的是休眠和待机不能下载的。因为硬盘都断电了。?休眠和待机的原理都是吧内存的东西保存住,下次就可以不用重新加载操作系统,但他们最大的不同是前者把内存中的数据临时保存到硬盘中,下次开机就直接

手机3G卡与2G卡的区别 手机内存3g和2g区别

手机3G卡与2G卡的区别——简介3G手机卡与2G手机卡有什么不同,3G和2G的特点和区别又是什么呢?2G是第二代手机通信技术的简称,3G是第二代手机通信技术的简称。下面将总结一下:手机3G卡与2G卡的区别——工具/原料

RAM和ROM的区别 手机中ram和rom的区别

RAM和ROM的区别——简介RAM、ROM 一直是困扰不少用户的两个概念。很多手机用户不知道 RAM 和 ROM 到底有什么区别,总是一知半解,云雾缭绕。如今,小编为您解答,告诉您到底 RAM 和 ROM 有哪些区别。RAM和ROM的区别——RAM和ROM的区别RAM

玛瑙与玉髓的区别 红玉髓和红玛瑙的区别

玛瑙与玉髓的区别——简介玉髓被称为玛瑙的姐妹玉石,相信很少人知道这一点。而我们在挑选这么玛瑙和玉髓制成的饰品的时候,该如何去区分我们看到的到底是玉髓还是玛瑙呢?下面,来介绍一下玉髓和玛瑙的区别,以便消费者朋友们更容易区分。

声明:《realloc,malloc,calloc的区别_Hey realloc函数和malloc》为网友执念于你分享!如侵犯到您的合法权益请联系我们删除