Для копирования значения одного поля структуры в другое можно сделать следующее:
```c
#include <stdio.h>
typedef struct {
int a;
int b;
} My_Struct;
int main() {
My_Struct struct1 = {10, 20};
My_Struct struct2;
struct2.a = struct1.a;
struct2.b = struct1.b;
printf("struct2.a = %d\n", struct2.a);
printf("struct2.b = %d\n", struct2.b);
return 0;
}
```
Чтобы инициализировать поле `len` структуры `My_Struct` при создании экземпляра структуры, можно воспользоваться конструктором (`constructor`) в C++. В C конструкторов нет, поэтому можно воспользоваться функцией для инициализации:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int len;
int *vec;
} My_Struct;
My_Struct createStruct(int *array, int size) {
My_Struct myStruct;
myStruct.len = size;
myStruct.vec = (int *)malloc(size * sizeof(int));
for (int i = 0; i < size; i++) {
myStruct.vec[i] = array[i];
}
return myStruct;
}
int main() {
int array[] = {1, 2, 3, 4, 5};
My_Struct myStruct = createStruct(array, sizeof(array) / sizeof(array[0]);
printf("myStruct.len = %d\n", myStruct.len);
free(myStruct.vec);
return 0;
}
```