C语言数组的动态分配内存和静态分配内存

在日常的编程中,我们难免会用到数组,很多时候由于静态开辟数组空间,导致很多空间浪费又或是空间不足,那么这时候就需要用到动态开辟数组内存。下面就介绍这两种初始化数组的方式:

一、静态分配

指定数组长度

//直接用数字
int arr[10];
    
//用宏定义define
#define MAXSIZE
int arr[MAXSIZE];

//用const
const int size = 10 ;
int arr[size];

不指定数组长度

//一维数组
int arr[] = {0,1,2};

//字符数组
字符串数组初始化:

//数组长度为3,没有'\0'
char arr0[] = {'a','b','c'};     

//数组长度为4 ,有'\0'
char arr1[] = {'a','b','c','\0'};

//数组长度为4,字符串后面自动补上 '\0'
char arr2[] = "C++";

二、动态分配

一维数组

//size 可以由用户输入
int *arr = (int *)malloc(sizeof(int)*size);

二维数组

//row 和 col 可以由用户输入
int **array = (int **)malloc(sizeof(int)*row);
for(i = 0; i < row; i++)	
   array[i] = (int *)malloc(sizeof(int)*col);

多维数组

以此类推…

以上就是这动静两种方式去初始化数组,在日常的编程中,可以根据需要选择合适的开辟内存的方式。

  • 1
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值