1、定义二维数组
1.1 直接定义:int a[1001][2]
int array[1001][2];
1.2 使用普通数组的指针
int (*array)[2]; // 定义一个指向有两个元素的数组的指针
array = malloc(1001 * sizeof(int[2])); // 动态分配大小为[1001][2]的内存
1.3 使用双重指针
int **array; // 定义一个二级指针
array = malloc(1001 * sizeof(int *)); // 为每一行分配指针
for (int i = 0; i < 1001; i++) {
array[i] = malloc(2 * sizeof(int)); // 为每一行的列分配内存
}
2、二维数组传参
2.1 固定大小的二维数组作为参数
void myFunction(int array[1001][2]) {
// 处理二维数组
}
void myFunction(int array[][2]) {
// 处理二维数组
}
int array[1001][2];
myFunction(array); // 传递二维数组
2.2 使用指向数组的指针作为参数
void myFunction(int (*array)[2]) {
// 处理二维数组
}
int array[1001][2];
myFunction(array); // 传递二维数组