在C中用内存操作的方法将两个数组拼在一起
时间: 2024-11-05 09:31:52 浏览: 18
在C语言中,将两个数组拼接在一起通常需要手动复制元素。因为C语言不像一些高级语言那样有内置的数组连接操作,你需要明确指定数组的起始地址、长度以及目标位置。这里有一个简单的例子:
```c
#include <stdio.h>
// 假设我们有两个数组
int arr1[5] = {1, 2, 3, 4, 5};
int arr2[3] = {6, 7, 8};
// 获取数组的结束地址
const int *end1 = arr1 + sizeof(arr1) / sizeof(int);
const int *end2 = arr2 + sizeof(arr2) / sizeof(int);
// 指定新的数组大小(包括两个原始数组的元素)
int combinedArr[5 + sizeof(arr2) / sizeof(int)];
// 将arr1复制到combinedArr
memcpy(combinedArr, arr1, sizeof(arr1));
// 将arr2追加到arr1的末尾
memcpy(combinedArr + sizeof(arr1) / sizeof(int), arr2, sizeof(arr2));
void printArray(const int *arr, int size) {
for (int i = 0; i < size; ++i)
printf("%d ", arr[i]);
printf("\n");
}
int main() {
printArray(combinedArr, sizeof(combinedArr) / sizeof(int));
return 0;
}
```
运行这个程序会打印出:
```
1 2 3 4 5 6 7 8
```
阅读全文