Необходимо, чтобы в структуре символьный массив был динамическим - 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);

Объяснение кода листинга программы

  1. В коде определена структура shop с полями: name типа char*, price типа float, num типа int и del типа int.
  2. Далее определена переменная temp типа char*.
  3. Затем определен массив структур shop типа st[100].
  4. После этого происходит чтение строки с помощью функции scanf в переменную temp.
  5. Далее с помощью функции malloc выделяется память под строку, которую затем копируют в поле name структуры shop с индексом i. При этом переменная i должна быть предварительно инициализирована.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы