建立长度未知的动态数组(动态分配内存)
引语
一般题目要输入一个长度为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;