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

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

文章目录

  • 建立长度未知的动态数组(动态分配内存)
    • 引语
    • 基础概念
    • malloc函数定义法
    • calloc函数定义法(推荐)

引语

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

基础概念

C语言建立长度未知的动态数组(动态分配内存)_第1张图片
堆区的内存需要程序员手动申请,这时需要引入malloc.h的库,这里面定义了申请管理堆区内存的函数。

malloc函数定义法

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

calloc函数定义法(推荐)

C语言建立长度未知的动态数组(动态分配内存)_第2张图片

#include
#include
int main(){
     
   int n;
   scanf("%d",&n);   
   int *arr = (int *) calloc(n, sizeof(int));
}

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

 free(arr);
 arr=NULL

你可能感兴趣的:(c语言,数据结构,算法,malloc)