要將數組拷貝到結構體中,可以使用結構體賦值的方式。下面是一個示例代碼:
#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
頭文件。