C语言将多个数组合并为一个数据
时间: 2024-03-09 10:48:53 浏览: 20
在 C 语言中,将多个数组合并为一个数组需要使用动态内存分配。我们可以先计算出要合并的所有数组的元素总数,然后使用 `malloc` 函数分配一块足够大的内存,将所有数组的元素依次复制到这块内存中。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int arr1[] = {1, 2, 3};
int arr2[] = {4, 5, 6};
int arr3[] = {7, 8, 9};
int len1 = sizeof(arr1) / sizeof(int);
int len2 = sizeof(arr2) / sizeof(int);
int len3 = sizeof(arr3) / sizeof(int);
int total_len = len1 + len2 + len3;
int* new_arr = (int*) malloc(total_len * sizeof(int));
int i, j = 0;
for (i = 0; i < len1; i++) {
new_arr[j++] = arr1[i];
}
for (i = 0; i < len2; i++) {
new_arr[j++] = arr2[i];
}
for (i = 0; i < len3; i++) {
new_arr[j++] = arr3[i];
}
for (i = 0; i < total_len; i++) {
printf("%d ", new_arr[i]);
}
printf("\n");
free(new_arr);
return 0;
}
```
在这个例子中,我们先定义了三个整数数组 `arr1`、`arr2` 和 `arr3`,然后计算出每个数组的元素个数 `len1`、`len2` 和 `len3`,并且计算出要合并的所有元素总数 `total_len`。接下来,我们使用 `malloc` 函数分配了一块足够大的内存,用来存储合并后的数组。然后,我们使用三个循环将所有数组的元素依次复制到新的数组 `new_arr` 中,最后使用一个循环将新数组中的所有元素打印出来。注意,在使用完动态分配的内存后,需要使用 `free` 函数释放内存。