Структура - найти ошибки в коде - C (СИ) (76110)
Формулировка задачи:
Не работает программа, скажите почему и как исправить. Нормально разобраться не могу как и что работает.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <windows.h> int main() { SetConsoleCP(1251); SetConsoleOutputCP(1251); struct house { char name[20]; int number; } *flat; struct house *temp; flat = (struct house*)malloc(sizeof(flat)); strcpy(flat->name,"Aleks"); flat->number=22222; printf("%d - %s\n", flat->number, flat->name); getchar(); return 1; }
Решение задачи: «Структура - найти ошибки в коде»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> #include <windows.h> typedef struct { char name[20]; int number; } house; int main() { house* temp; SetConsoleCP(1251); SetConsoleOutputCP(1251); temp = (house*) malloc(sizeof(house)); strcpy(temp->name, "Aleks"); temp->number=22222; printf("%d - %s\n", temp->number, temp->name); free(temp); getchar(); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdio.h, stdlib.h, windows.h
- Объявление структуры house, которая содержит два поля: name (строка, ограничиваемая 20 символами) и number (целое число)
- Создание указателя temp типа house* для выделения памяти под один элемент структуры house
- Выделение памяти под структуру house с помощью функции malloc
- Копирование строки
Aleks
в поле name структуры house с помощью функции strcpy - Присваивание полю number значение 22222
- Вывод на экран значения поля number и поля name с помощью функции printf
- Освобождение памяти с помощью функции free
- Ожидание нажатия клавиши с помощью функции getchar
- Возврат 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д