动态内存管理(上)

这节主要复习动态内存管理中的malloc, realloc, calloc, 以及free。

为什么使用动态内存管理

首先需要明确一下为什么需要动态内存管理。 

我们平常进行开辟空间是这样开辟的:

int a = 0; // 开辟一个四个字节大小的空间, 存放整形数据。

int a[10] = { 0 }; // 开辟一个40 个字节大小的空间, 存放十个整形数据。 

但是以上开辟方式, 我们开辟出来的空间是固定的。 这就有可能出现问题。 因为我们在实际生活中, 我们使用的数据大小是不一定的。 我们不知道需要开辟多少空间来满足需求, 这就需要用到动态内存分配。人们可以通过动态内存分配, 使用更加灵活。 

malloc

void* malloc (size_t size);

该函数是向堆区的内存中申请一块连续的空间。并返回一个指向这块空间首地址的指针, 注意这里的指针类型是void* 类型。 

假如内存不够的话会返回一个空指针。 

可以通过强制类型转换转换返回指针的类型。 

 由于内存不够会返回一个空指针, 所以我们通常在使用malloc之后会进行判断:

 

  • 30
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值