C语言 堆区空间,malloc

前言

一、堆区空间的理解:

前面测试,普通的数组变量默认最大不能申请1M的空间,甚至远少于1M的空间,毕竟程序中的其他变量也需要使用空间。总共就1M,要省着用。
想要使用更大的,没有限制的空间,C语言给我们提供了方式:
如下:

  1. malloc // 申请空间,理论上物理内存有多大,就能申请多大,当然并不能,电脑系统运行其他软件按也需要空间。
  2. 兄弟函数:callocrealloc 均可以使用。
  3. free // 释放空间,申请的空间必须我们自己释放。

二、malloc:

  1. 使用:头文件:malloc.h (一定要加上,老版本可以不加,新版本一定要加上)
    malloc 的函数原型:
    void * malloc ( size_t_Size);
    malloc 作用:申请一段空间,并返回该空间的首地址
  2. void * : malloc 申请的空间首地址返回 void* ,我们可以将其转化为任意类型去使用。
  3. 参数: 要申请的字节数。
    int * p = (int * ) malloc (sizeof ( int ) * 10); // 也可以直接写40
    做10个int 类型的数组使用:
    p[0] , p[1] , p[2] ,…p[8] , p[9]

例如:

  1. 这两者都是申请40个空间。
    在这里插入图片描述
  2. 做 12 个元素的 3 行 4 列的 int 类型使用:
    int ( * p) [4] = (int ( * )[4]) malloc ( sizeof ( int ) * 3 * 4);
    p[0][0]…p[2][3] 共12个元素。
    用法类比之前学的:(两者都是一样的,申请48空间)
    int a[3][4];
    int (*p)[4]=a;

总结

下一节 free 的使用。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

糖果罐子♡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值