C语言建立长度未知的动态数组(动态分配内存)

建立长度未知的动态数组(动态分配内存)

引语

一般题目要输入一个长度为n的数组(n需要输入),因为其长度未知,我们常规方法是建立一个足够长的数组,如a[100],a[10000000]等。
这样处理的缺点是会消耗大量不必要的内存。
因此我们有必要引入动态分配内存的介绍。
这种方法可以根据输入n的大小来动态规定数组长度

基础概念

在这里插入图片描述
堆区的内存需要程序员手动申请,这时需要引入malloc.h的库,这里面定义了申请管理堆区内存的函数。

malloc函数定义法

#include<stdio.h>
#include<malloc.h>
int main(){
    int n;//n表示数组的长度
   int* arr=int*)malloc(n*size(int));//定义动态数组
}

calloc函数定义法(推荐)

在这里插入图片描述

#include<stdio.h>
#include<malloc.h>
int main(){
   int n;
   scanf("%d",&n);   
   int *arr = (int *) calloc(n, sizeof(int));
}

同时注意数组所申请的空间需要被释放

 free(arr);
 arr=NULL
  • 12
    点赞
  • 104
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值