用memcpy函数赋值数组中间某段数据,写个例程
时间: 2023-05-25 22:06:34 浏览: 68
下面是一个使用memcpy函数赋值数组中间某段数据的例程:
```
#include <stdio.h>
#include <string.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int new_data[] = {8, 9};
int start_index = 1;
int end_index = 3;
int num_elements = end_index - start_index + 1;
memcpy(arr + start_index, new_data, num_elements * sizeof(int));
printf("New array: ");
for(int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
此例程中定义了一个五个元素的整型数组arr和一个两个元素的新数组new_data。我们想要将arr的第2到第4个元素(即下标为1到3的元素)替换为new_data数组中的元素。因此,我们定义了变量start_index和end_index,并计算要替换的元素个数num_elements。
然后,我们使用memcpy函数将new_data数组的元素拷贝到arr数组中间。memcpy函数的前两个参数分别指向目标数组的起始位置和源数组的起始位置。第三个参数是要拷贝的字节数,即要替换的元素个数乘上每个元素的大小。
最后,我们输出替换后的arr数组并检查结果。输出应该为:1 8 9 5。