Мусор при инициализации структуры - C (СИ)

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

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

Доброго времени суток. Я отказываюсь понимать, какого черта структура не инициализируется. Код:
Листинг программы
  1. typedef struct Circle
  2. {
  3. double R; //Радиус
  4. Point O; //Центр
  5. };
Листинг программы
  1. Arr = (Circle *)malloc(N * sizeof(Circle));
  2. for (int i = 0; i < N; i++)
  3. {
  4. printf("Круг %d: ", i + 1);
  5. printf("R = ");
  6. scanf_s("%f", &Arr[i].R);
  7. printf("x = ");
  8. scanf_s("%f", &Arr[i].O.x);
  9. printf("y = ");
  10. scanf_s("%f", &Arr[i].O.y);
  11. }
Вместо значений - мусор! Что это значит вообще?

Решение задачи: «Мусор при инициализации структуры»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. typedef struct Point { double x; double y; };
  4.  
  5. typedef struct Circle { Point pos; double r; };
  6.  
  7. int main() {
  8.     Circle kugel = { { 10., 20. }, 35 };
  9.    
  10.     printf("X: %.1f; Y: %.1f; R: %.1f\n", kugel.pos.x, kugel.pos.y, kugel.r);
  11.    
  12.     return 0;
  13. }

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

  1. Подключение стандартной библиотеки файлов ввода-вывода
  2. Объявление структуры Point с полями x и y типа double
  3. Объявление структуры Circle с полем pos типа Point и полем r типа double
  4. Инициализация структуры Circle с помощью фигурных скобок, значения по умолчанию для поля r равны 0.
  5. Вывод значений полей структуры Circle на экран с помощью функции printf
  6. Возврат значения 0 в конце функции main

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


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

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

12   голосов , оценка 3.833 из 5

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

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

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