博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
malloc realloc calloc
阅读量:5912 次
发布时间:2019-06-19

本文共 984 字,大约阅读时间需要 3 分钟。

三个函数大多使用在c语言函数的指针当中为指针分配地址,他们的原型分别如

下:
void *realloc(void *ptr,unsigned newsize);
void *malloc(unsigned size);
void *calloc(num,unsigned size);
他们包含在stdlib.h的函数里,一般使用sizeof()函数分配size的大小。

1)malloc用于申请一段新的地址,size为所需空间的长度;

例子如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
 char *num;
 num=(char *)malloc(sizeof(char));
 if(num)
 printf("恭喜你已成功为num分配了地址\n");
 else
 printf("抱歉,分配失败\n");
 return 0;
}

2)calloc的用法与malloc的差别不是太大,就是多了一个num,num表示申请地址

元素的个数,unsigned size代表分配空间的长度。
例子如下:
#include<stdio.h>
#include<stdlib.h>
int main()
{
 char *num;
 num=(char *)calloc(20,sizeof(char));
 if(num)
 printf("恭喜你已成功为num分配了能存储20个元素的地址\n");
 else
 printf("抱歉,分配失败\n");
 return 0;
}
3)realloc指的是为已经分配了地址的指针重新分配空间,unsigned size指的是重新
分配的空间。其中重新分配的长度必须大于以前的长度
例子如下:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
 char *num,*num1;
 num1=num=(char *)calloc(20,sizeof(char));
 num=(char *)realloc(num,sizeof(char));
 if(num)
 printf("恭喜你已经成功为num重新分配了地址\n");
 else
 printf("抱歉,分配失败\n");
 return 0;
}

 

转载地址:http://hglpx.baihongyu.com/

你可能感兴趣的文章
docker实践4
查看>>
selenium测试(Java)--多表单切换(十二)
查看>>
PHP自学,第一阶段,基础学习
查看>>
curl命令使用
查看>>
Ubuntu 12.04将默认集成Landscape管理套件【转】
查看>>
js数组实现不重复插入数据
查看>>
vim配置
查看>>
Oracle_spatial的空间操作符介绍
查看>>
剑指 offer set 24 扑克牌的顺子
查看>>
关于Vue.js面试题汇总
查看>>
微信小程序第三方开发需要注意的点
查看>>
大话爬虫的实践技巧
查看>>
react-native 学习心得
查看>>
[译]使用 Siesta 处理 Swift 网络请求
查看>>
Android 中的子线程解析
查看>>
aidl跨进程通讯
查看>>
小程序上传图片到七牛云(支持多张上传,预览,删除)
查看>>
spring boot 整合mybatis 无法输出sql的问题
查看>>
为什么要用IPython/Jupyter?
查看>>
Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
查看>>