realloc,malloc,calloc三者的区别
来源:互联网 发布:三菱编程器fx20p 编辑:程序博客网 时间:2024/06/14 05:19
malloc,calloc,realloc,free属于C函数库,而new/delete则是C++函数库;
多个-alloc的比较
alloc:唯一在栈上申请内存的,无需释放;malloc:在堆上申请内存,最常用;calloc:malloc+初始化为0;realloc:将原本申请的内存区域扩容,参数size大小即为扩容后大小,因此此函数要求size大小必须大于ptr内存大小。
realloc,malloc,calloc的区别
三个函数的声明分别是:
void* realloc(void* ptr, unsigned newsize); void* malloc(unsigned size); void* calloc(size_t numElements, size_t sizeOfElement);
都在stdlib.h函数库内
它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL
1、malloc用于申请一段新的地址,参数size为需要内存空间的长度,如:
char* p; p=(char*)malloc(20);
2、calloc与malloc相似,参数sizeOfElement为申请地址的单位元素长度,numElements为元素个数,如:
char* p; p=(char*)calloc(20,sizeof(char));
这个例子与上一个效果相同
malloc和calloc的区别是1块与n块的区别和初始化!!!!
3、realloc是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度
如:
char* p; p=(char*)malloc(sizeof(char)*20); p=(char*)realloc(p,sizeof(char)*40);
注意,这里的空间长度都是以字节为单位。
0 0
- malloc、calloc、realloc三者的区别
- realloc,malloc,calloc三者的区别
- realloc,malloc,calloc的区别
- malloc、calloc、realloc的区别
- realloc,malloc,calloc的区别
- malloc、calloc、realloc的区别
- malloc、calloc、realloc的区别
- malloc、calloc、realloc的区别
- realloc,malloc,calloc的区别
- realloc,malloc,calloc的区别
- realloc,malloc,calloc的区别
- malloc、calloc、realloc的区别
- realloc,malloc,calloc的区别
- realloc,malloc,calloc的区别
- malloc,calloc,realloc的区别
- realloc,malloc,calloc的区别
- malloc 、realloc、calloc 的区别
- realloc,malloc,calloc的区别
- 信息学奥林匹克竞赛-C语言输出3个数中最大值
- 第3周项目3(2) 输出星号图
- C++ 网络编程:一个可复用的套接字管理类和一个简单用例
- 单源最短路径Dijsktra算法
- Android手机之间的蓝牙通信的代码和原理
- realloc,malloc,calloc三者的区别
- 三个疑问与解决。
- 数据库设计之总账与流水账设计
- python工具记录
- 【Android进阶】ScrollView内嵌套ListView时禁止ListView的滚动
- 配置facebook sdk
- 目录下面文件名的排序
- IOS 汉字拼音排序
- linux在后台运行一个命令