Изменение поля в структуре - C (СИ)
Формулировка задачи:
Допустим есть структура
И под эту структуру выделена память
Как мне заполнить значение *a?
struct tsp { int *a; } *new_tsp;
tsp *new_tsp = (tsp*)malloc(sizeof(tsp));
Решение задачи: «Изменение поля в структуре»
textual
Листинг программы
#include <stdlib.h> #include <stdio.h> struct tsp { int *a; }; int main(void) { struct tsp* ptr = NULL; ptr = malloc(sizeof(*ptr)); ptr->a = malloc(sizeof(*(ptr->a))); *(ptr->a) = 320; printf("%d\n", *(ptr->a)); free(ptr->a); free(ptr); return 0; }
Объяснение кода листинга программы
- Подключение необходимых библиотек: stdlib.h и printf.h
- Объявление структуры tsp, которая содержит указатель на массив int
- Указатель на структуру tsp, ptr, инициализируется как NULL
- Выделение памяти под структуру tsp с помощью malloc
- Выделение памяти под массив int, на который указывает указатель a структуры tsp, с помощью malloc
- Значение массива int устанавливается равным 320 с помощью оператора присваивания
- Выводится значение массива int с помощью функции printf
- Выделенная память под массив int освобождается с помощью функции free
- Выделенная память под структуру tsp освобождается с помощью функции free
- Функция main возвращает 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д