/
MaestroN
/
Eltex_Homework
Обзор
Документация
Войти
/
MaestroN
/
Eltex_Homework
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Task_6/task6.2.c
45 строк
2 KB
nikita_shub
Добавление 6 задания
06 янв 2025, 17:25
06 янв 2025, 17:25
486d041
Код
Авторство
О чём код?
/* 2: Инициализация памяти с помощью calloc Создайте программу, которая выделяет память для массива структур, каждая из которых содержит два поля: целочисленное и строковое. Используйте calloc для инициализации памяти. Заполните структуры данными и выведите их содержимое.*/ #include <stdio.h> #include <stdlib.h> struct car // Определение структуры car с двумя полями: год и модель { int year; char model[10]; }; int main(void) { struct car *ptr = calloc(3, sizeof(struct car)); // Выделение памяти для массива из 3 структур car с помощью calloc if(ptr == NULL) { // Проверка на успешное выделение памяти printf("Ошибка выделения памяти"); return 1; } // Заполнение массива структур данными for (int i=0; i<3; i++) { ptr[i].year = 1980 + i*i; switch (i) { case 0: snprintf(ptr[i].model, sizeof(ptr[i].model), "Kia"); // Используем snprintf для безопасного копирования строки break; case 1: snprintf(ptr[i].model, sizeof(ptr[i].model), "Hyundai"); break; case 2: snprintf(ptr[i].model, sizeof(ptr[i].model), "BMW"); break; default: break; } printf("Год выпуска:%d, модель:%s\n", ptr[i].year, ptr[i].model); } // Освобождение выделенной памяти free(ptr); return 0; }