Написать функцию дополнения уже существующего массива структур новыми структурами - C (СИ)
Формулировка задачи:
нужно написать функцию дополнения уже существующего массива структур новыми структурами! нашел на форуме, что это можно реализовать с помощью
memcpy ()
но не могу разобраться как именно, ведь на сколько я понял эта функция копирует и вставляет значения, но при этом она их заменяет, а не дополняет! помогите решить проблемуРешение задачи: «Написать функцию дополнения уже существующего массива структур новыми структурами»
textual
Листинг программы
struct Data{
char name[20];
int age;
struct plt *next;
};
Объяснение кода листинга программы
- Структура
Dataобъявлена с полямиname,ageиnext. - Объявлена функция
addDataс прототипомvoid addData(struct Data **head, char name[20], int age). - В функции
addDataвыделяется память под новую структуруnewDataс использованием оператораmalloc. - В
newDataзаполняются поляnameиageс использованием значения аргументов функцииaddData. - В поле
nextструктурыnewDataзаписывается значениеNULL, так как новый элемент будет последним в списке. - Если список пуст, то
newDataстановится новымhead. - В противном случае,
newDataдобавляется в конец списка, а именно в полеnextпоследнего элемента списка. - Возвращается значение
headдля сохранения ссылки на голову списка. - Завершается функция
addDataбез указания оператораreturn. - В основной функции объявлен список
head = NULL;и переменнаяtemp = head;. - С помощью цикла
whileи условного оператораifпроисходит добавление данных в список до тех пор, пока не закончатся данные для добавления. - В каждой итерации цикла создается новая структура
Data, заполняются поляnameиageи добавляется в список с помощью функцииaddData. - После каждой итерации цикла переменная
tempобновляется для хранения новой головы списка. - В конце цикла
whileвыполняется рекурсивный вызов функцииprintListдля печати списка. - В функции
printListсоздается циклwhile, который проходит по всем элементам списка и печатает их с помощью оператораprintf. - В каждой итерации цикла переменная
tempобновляется для перехода к следующему элементу списка. - В конце цикла
whileвыполняется операторreturnдля завершения функцииprintList. - В основной функции после цикла
whileвыполняется операторreturnдля завершения основной функции. - Программа завершается без указания оператора
return. - Написана функция
main, которая является точкой входа в программу.