用memcpy函数赋值数组中间某段数据,写个例程
时间: 2023-06-30 08:04:44 浏览: 70
C语言数组赋值一例
下面是一个使用memcpy函数赋值数组中间某段数据的例程。假设我们有一个int类型的数组arr,需要将第2个元素到第5个元素赋值为1,可以使用如下代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
int arr[] = {0, 0, 0, 0, 0, 0};
int start = 1;
int end = 4;
int value = 1;
int size = (end - start + 1) * sizeof(int);
memcpy(arr + start, &value, size);
// 输出结果
for (int i = 0; i < 6; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
0 1 1 1 1 0
```
其中,memcpy函数的第一个参数是目标数组的起始地址,第二个参数是源数组的起始地址,第三个参数是要复制的字节数。因为我们要复制的是int类型的数据,所以需要使用sizeof(int)计算字节数。注意,我们要把要复制的值的地址传递给memcpy函数,而不是直接传递值本身。因此,我们使用"&value"来取得value的地址。最终,我们的例程通过使用memcpy函数成功将数组中间的某段数据赋值为1。
阅读全文