Необходимо, чтобы в структуре символьный массив был динамическим - C (СИ)
Формулировка задачи:
Здраствуйте! Помогите пожалуйста с преобразованием данной структуры. Необходимо, чтобы в структуре символьный массив name[255] был динамический. Возможно ли это сделать?
struct shop { char name[255];//название товара float price;//цена int num;//количество товара int del;//удалена запись или нет(1 - нет, 0 - да) }; struct shop st;
Решение задачи: «Необходимо, чтобы в структуре символьный массив был динамическим»
textual
Листинг программы
struct shop { char* name;//название товара float price;//цена int num;//количество товара int del;//удалена запись или нет(1 - нет, 0 - да) }; char *temp; struct shop st[100]; ... scanf("%s",temp); st[i].name=(char*)malloc(strlen(temp)+1); strcpy(st[i].name, temp);
Объяснение кода листинга программы
- В коде определена структура
shop
с полями:name
типа char*,price
типа float,num
типа int иdel
типа int. - Далее определена переменная
temp
типа char*. - Затем определен массив структур
shop
типа st[100]. - После этого происходит чтение строки с помощью функции scanf в переменную
temp
. - Далее с помощью функции malloc выделяется память под строку, которую затем копируют в поле
name
структурыshop
с индексомi
. При этом переменнаяi
должна быть предварительно инициализирована.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д