memcpy 二维数组赋值
时间: 2023-10-12 11:14:44 浏览: 94
可以使用两个嵌套的 for 循环配合 memcpy 函数来实现二维数组的赋值。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define ROWS 3
#define COLS 4
int main() {
int arr1[ROWS][COLS] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
int arr2[ROWS][COLS];
for (int i = 0; i < ROWS; i++) {
memcpy(arr2[i], arr1[i], COLS * sizeof(int));
}
printf("arr1:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", arr1[i][j]);
}
printf("\n");
}
printf("arr2:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", arr2[i][j]);
}
printf("\n");
}
return 0;
}
```
这里定义了两个二维数组 arr1 和 arr2,先将 arr1 中的值赋给 arr2。通过两个嵌套的 for 循环依次遍历二维数组的每个元素,再使用 memcpy 函数复制对应元素的值。最后打印 arr1 和 arr2 的值,验证是否成功复制。
阅读全文