malloc ,calloc 和 realloc之间的区别?

相同点:

  1. 都是C语言从堆中申请内存,申请成功的空间必须释放
  2. 在使用时,返回类型都是void*,在使用时必须进行强制类型转化
  3. 如果申请失败,返回NULL,在使用时必须判空

不同点:

malloc:void* malloc (size_t size); 

说明:向系统申请size字节的内存,成功返回所申请的内存(块)的起始地址,失败返回NULL。                                                                 返回值是 void*,void* 类型可以强制转换为任何其它类型的指针,malloc只管分配内存,不对申请的内存进行初始化

calloc:void* calloc (size_t num, size_t size);

说明:在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。

realloc:void* realloc (void* ptr, size_t size);

说明:对内存空间进行调整。ptr指向要调整的空间。根据ptr是否为空分为两种情况:

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值