Как заполнить структуру в СИ?

Заполнение структуры в языке программирования C может быть выполнено несколькими способами. Я расскажу о двух самых распространенных подходах: используя оператор присваивания и функцию memcpy.

1. Использование оператора присваивания:
Для заполнения структуры с использованием оператора присваивания, необходимо иметь доступ к полям (членам) структуры. Предположим, у нас есть следующая структура:

   #include <stdio.h>

   struct Person {
       char name[50];
       int age;
       float height;
   };

Чтобы заполнить структуру, вы можете использовать оператор присваивания следующим образом:

   int main() {
       struct Person person1;
   
       // Заполняем поля структуры с использованием оператора присваивания
       strcpy(person1.name, "John Doe");
       person1.age = 30;
       person1.height = 1.75;
   
       // Выводим значения полей структуры
       printf("Name: %sn", person1.name);
       printf("Age: %dn", person1.age);
       printf("Height: %.2fn", person1.height);
   
       return 0;
   }

В данном примере мы создаем экземпляр структуры Person, заполняем его поля и выводим значения на экран.

2. Использование функции memcpy:
Для заполнения структуры с использованием функции memcpy, необходимо иметь указатель на структуру и блок памяти, который содержит значения для заполнения. Предположим, у нас есть следующая структура:

   #include <stdio.h>
   #include <string.h>

   struct Point {
       int x;
       int y;
   };

Чтобы заполнить структуру, вы можете использовать функцию memcpy следующим образом:

   int main() {
       struct Point point1;

       // Создаем блок памяти с данными для заполнения структуры
       struct Point data = {10, 20};

       // Заполняем структуру с использованием функции memcpy
       memcpy(&point1, &data, sizeof(struct Point));

       // Выводим значения полей структуры
       printf("x: %dn", point1.x);
       printf("y: %dn", point1.y);

       return 0;
   }

В данном примере мы создаем экземпляр структуры Point, создаем блок памяти с данными для заполнения, а затем копируем содержимое блока памяти в структуру с помощью функции memcpy. После этого мы выводим значения полей структуры на экран.

Оба описанных выше способа позволяют заполнить поля структуры в языке программирования C. Выбор метода будет зависеть от ваших потребностей и предпочтений.