Мусор при инициализации структуры - C (СИ)
Формулировка задачи:
Доброго времени суток. Я отказываюсь понимать, какого черта структура не инициализируется. Код:
Вместо значений - мусор! Что это значит вообще?
Листинг программы
- typedef struct Circle
- {
- double R; //Радиус
- Point O; //Центр
- };
Листинг программы
- Arr = (Circle *)malloc(N * sizeof(Circle));
- for (int i = 0; i < N; i++)
- {
- printf("Круг %d: ", i + 1);
- printf("R = ");
- scanf_s("%f", &Arr[i].R);
- printf("x = ");
- scanf_s("%f", &Arr[i].O.x);
- printf("y = ");
- scanf_s("%f", &Arr[i].O.y);
- }
Решение задачи: «Мусор при инициализации структуры»
textual
Листинг программы
- #include <stdio.h>
- typedef struct Point { double x; double y; };
- typedef struct Circle { Point pos; double r; };
- int main() {
- Circle kugel = { { 10., 20. }, 35 };
- printf("X: %.1f; Y: %.1f; R: %.1f\n", kugel.pos.x, kugel.pos.y, kugel.r);
- return 0;
- }
Объяснение кода листинга программы
- Подключение стандартной библиотеки файлов ввода-вывода
- Объявление структуры Point с полями x и y типа double
- Объявление структуры Circle с полем pos типа Point и полем r типа double
- Инициализация структуры Circle с помощью фигурных скобок, значения по умолчанию для поля r равны 0.
- Вывод значений полей структуры Circle на экран с помощью функции printf
- Возврат значения 0 в конце функции main
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д