C语言之动态内存分配与释放

一,堆内存

1,堆内存特点

堆内存可以存放任意类型的数据,但需要自己申请与释放。

2,堆大小

堆大小,想像中的无穷大,但实际使用中,受限于实际内存的大小和内存是否有连续性。

二,堆内存的申请与释放

1,malloc函数
  • 函数声明:·void *malloc(size_t Size)

  • 所在文件:stdlib.h

  • 参数:size_t Size (Size表示要申请的字节数)

  • 返回值:void * (成功则返回“指向申请空间的指针”,失败则返回NULL)

  • 函数功能:申请Size个字节的堆内存并返回内存空间首地址

2,calloc函数
  • 函数声明:void *calloc(size_t nmemb,size_t size)

  • 所在文件:stdlib.h

  • 参数:size_t nmemb size_t size(申请nmemb个大小为size的内存单元)

  • 返回值:void * (成功则返回“指向申请空间的指针”,失败则返回NULL)

  • 函数功能:申请具有若干个具有固定单元大小的堆内存空间,自动清零

3,realloc函数
  • 函数声明:void *realloc(void *ptr,size_t size)

  • 所在文件:stdlib.h

  • 参数:void *ptr ,size_t size (ptr表示原有堆内存空间的指针,size表示扩容后的堆内存空间的大小,扩容后的指针可能会改变,若原堆内存空间“后”没有足够的连续堆内存空间提供扩容)

  • 返回值:void * (对原堆内空间进行扩容)

  • 功能:对原堆内空间进行扩容

4,free函数
  • 函数声明:void free(void *p)

  • 所在文件:stdlib.h

  • 参数

  • 4
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值