在日常的编程中,我们难免会用到数组,很多时候由于静态开辟数组空间,导致很多空间浪费又或是空间不足,那么这时候就需要用到动态开辟数组内存。下面就介绍这两种初始化数组的方式:
一、静态分配
指定数组长度
//直接用数字int arr[10];//用宏定义define#define MAXSIZEint arr[MAXSIZE];//用constconst 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);
多维数组
以此类推…
以上就是这动静两种方式去初始化数组,在日常的编程中,可以根据需要选择合适的开辟内存的方式。