Изменение поля в структуре - C (СИ)

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

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

Допустим есть структура
struct tsp {
    int *a;
} *new_tsp;
И под эту структуру выделена память
tsp *new_tsp = (tsp*)malloc(sizeof(tsp));
Как мне заполнить значение *a?

Решение задачи: «Изменение поля в структуре»

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;
}

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

  1. Подключение необходимых библиотек: stdlib.h и printf.h
  2. Объявление структуры tsp, которая содержит указатель на массив int
  3. Указатель на структуру tsp, ptr, инициализируется как NULL
  4. Выделение памяти под структуру tsp с помощью malloc
  5. Выделение памяти под массив int, на который указывает указатель a структуры tsp, с помощью malloc
  6. Значение массива int устанавливается равным 320 с помощью оператора присваивания
  7. Выводится значение массива int с помощью функции printf
  8. Выделенная память под массив int освобождается с помощью функции free
  9. Выделенная память под структуру tsp освобождается с помощью функции free
  10. Функция main возвращает 0, что означает успешный конец работы программы

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


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

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

6   голосов , оценка 3.667 из 5
Похожие ответы