Как освободить динамически выделенную память в структуре - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Заголовочный файл myheader.h
Листинг программы
  1. struct tagDate
  2. {
  3. int yy, mm, dd;
  4. };
  5. struct tagGoods
  6. {
  7. char name[50];
  8. double price;
  9. char *prod;
  10. struct tagDate date;
  11. };
  12. typedef struct tagGoods Goods;
Сам код
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include "myheader.h"
  5. void getGoods(Goods *pGoods)
  6. {
  7. Goods temp;
  8. char buf[255];
  9. printf("Input YY MM DD: ");
  10. scanf("%d %d %d", &temp.date.yy, &temp.date.mm, &temp.date.dd);
  11. fflush(stdin);
  12. printf("Input name: ");
  13. gets(temp.name);
  14. printf("Input price: ");
  15. scanf("%lf", &temp.price);
  16. fflush(stdin);
  17. printf("Input prod: ");
  18. gets(buf);
  19. temp.prod = (char*) malloc(strlen(buf) + 1);
  20. strcpy(temp.prod, buf);
  21. *pGoods = temp;
  22. }
  23. void putGoods(Goods g)
  24. {
  25. printf("%s %s %f date = %d %d %d \n", g.name, g.prod, g.price, g.date.yy, g.date.mm, g.date.dd);
  26. }
  27. void cpyGoods(Goods *d, Goods *s)
  28. {
  29. *d = *s;
  30. d->prod = NULL;
  31. d->prod = (char*) malloc(strlen(s->prod) + 1);
  32. strcpy(d->prod, s->prod);
  33. }
  34. int main(int argc, char *argv[])
  35. {
  36. Goods meat, meat2;
  37. getGoods(&meat);
  38. cpyGoods(&meat2, &meat);
  39. putGoods(meat2);
  40. system("PAUSE");
  41. return 0;
  42. }
Каким обзором освободить (где именно)? О функций free() знаю)

Решение задачи: «Как освободить динамически выделенную память в структуре»

textual
Листинг программы
  1.  free(meet.prod); free(meet2.prod);

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

  1. meet - это структура, которая содержит указатель на динамически выделенную память под названием prod.
  2. meet2 - это также структура, которая содержит указатель на динамически выделенную память под названием prod.
  3. Функция free используется для освобождения памяти, на которую указывают указатели meet.prod и meet2.prod.

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


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

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

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы