要将数组拷贝到结构体中,可以使用结构体赋值的方式。下面是一个示例代码:
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 10
typedef struct {
int arr[MAX_SIZE];
int size;
} MyStruct;
void copyArrayToStruct(int array[], int size, MyStruct* myStruct) {
memcpy(myStruct->arr, array, sizeof(int) * size);
myStruct->size = size;
}
int main() {
int array[MAX_SIZE] = {1, 2, 3, 4, 5};
MyStruct myStruct;
copyArrayToStruct(array, sizeof(array) / sizeof(int), &myStruct);
printf("Copied array: ");
for (int i = 0; i < myStruct.size; i++) {
printf("%d ", myStruct.arr[i]);
}
return 0;
}
在上面的示例中,copyArrayToStruct
函数接受一个整数数组、数组大小和一个指向结构体的指针作为参数。使用memcpy
函数将数组内容拷贝到结构体的数组成员中,同时将数组大小赋值给结构体的size
成员。然后在main
函数中调用copyArrayToStruct
函数,将数组拷贝到结构体中,并打印拷贝后的数组内容。
注意,这里使用了memcpy
函数来拷贝数组,需要包含string.h
头文件。