c语言中calloc是什么意思,C语言中malloc和calloc以及relloc函数的区别

bf8615f5c4b7cf455b2bf8184ccc7128.png

在c语言中,当我们在构建一个链表的时候,难以避免的会涉及到内存的动态分配,内存分配的动态分配涉及到malloc,calloc以及relloc函数,在我们使用是时,他们有什么小小的区别呢?1,malloc(),这个函数的使用格式是:(类型说明符 *)malloc(size);他的作用是在堆区分配一块size字节的连续的内存空间,函数的返回值是申请内存空间的首地址,例如申请100字节的空间:char *p = (char*)maolloc(100);这段代码的含义就是申请100个存放char型的动态内存空间。

2,calloc()函数和malloc函数有什么区别呢?

62082e59d9c433d7ac5fa990933e979e.png

首先,calloc()函数的格式为:(类型说明符*)calloc(n,size);他是申请n个size的连续的动态内存,除此之外他和malloc很大的区别是calloc申请的动态内存空间是干净的内存,当你输出内存中的数据时它是NULL,而malloc()申请的动态内存空间不一定是干净的,当你输出时有可能会打印出一些未知的数据。malloc和calloc的区别

3,rellc()函数是用于你的动态内存空间不足以存储你所要储存的信息时,需要再追加一段内存,函数的格式是:(类型说明符*)relloc(p,size);p是你原来申请的动态空间的首地址,是你要申请的动态内存的大小,而不是你要追加的动态内存空间大小,这一点要切记。malloc和calloc的区别在这里还要注意一点,就是你要追加的动态内存空间的大小大于你原来申请的动态内存空间紧挨着的内存空间时,申请的内存空间会重新查找一块足够大的动态内存区,然后将数据拷贝到你申请到的内存中,然后删除你原来申请的内存空间的数据。

10a367637776e91abfd4fabc2b0e273e.png

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-94074-1.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值