实现一个函数,传入一个多维数组,返回一个平铺的一维数组
时间: 2023-03-27 07:04:50 浏览: 115
利用递归把多维数组转为一维数组的函数
好的,这个问题可以回答。以下是实现该函数的代码:
```c
void flatten(int arr[], int *arr_size, int multi_arr[], int dim) {
int i;
for (i = ; i < dim; i++) {
if (multi_arr[i] == NULL) {
continue;
}
if (i == dim - 1) {
int j;
for (j = ; j < multi_arr[i]; j++) {
arr[*arr_size] = multi_arr[i][j];
(*arr_size)++;
}
} else {
flatten(arr, arr_size, multi_arr[i], dim - 1);
}
}
}
int* flatten_multi_dim_array(int multi_arr[], int dim) {
int arr_size = ;
int i;
for (i = ; i < dim; i++) {
arr_size += get_array_size(multi_arr[i], dim - 1);
}
int *arr = (int*) malloc(sizeof(int) * arr_size);
arr_size = ;
flatten(arr, &arr_size, multi_arr, dim);
return arr;
}
```
这个函数接受一个多维数组和它的维度作为参数,返回一个平铺的一维数组。
阅读全文