Создать динамический массив в структуре - C (СИ)
Формулировка задачи:
Помогите создать динамический массив в структуре. Я туплю и не могу догнать, как это сделать
Решение задачи: «Создать динамический массив в структуре»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct /*создаем структуру*/ { int * mass; }Str; int main(void) { Str strct; /* объявляем ее */ int size; /* переменная для размера */ printf("Please enter size of massive: "); scanf("%d",&size); strct.mass=(int*)malloc(sizeof(int)*size); /* создаем динамический массив с введенным размером. Просим память у системы */ if (strct.mass==0) /* Если система не дала памяти под массив, выходим */ { puts("No memory"); return 1; } printf("Massive created on adress %p size %d of %d bytes\n",strct.mass,size,sizeof(int)*size); /* выполняете с массивом какие-то действия */ free(strct.mass); /* после работы с массивом, вернем память системе */ puts("Memory free!"); return 0; /* не забывайте про return 0! */ }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с памятью и вводом/выводом данных
- Создаем структуру
Str
с одним полем - динамическим массивом int типа - В функции main() объявляем экземпляр структуры
Str
и переменную для хранения размера массива - Запрашиваем у пользователя размер массива с помощью функции scanf()
- Выделяем память под динамический массив с помощью функции malloc() и сохраняем указатель на массив в поле
mass
структурыStr
- Проверяем успешность выделения памяти с помощью оператора сравнения
if
. Если память не выделена, выводим сообщение об ошибке и завершаем программу - Выводим сообщение о создании массива с указанием адреса и размера, а также выводим размер в байтах, рассчитанный как произведение размера одного элемента на количество элементов
- В данном примере не выполняем никаких действий с массивом, но можно добавить какой-либо код для работы с массивом
- Освобождаем выделенную память с помощью функции free() и выводим сообщение об освобождении памяти
- Возвращаем 0 из функции main(), чтобы программа успешно завершилась
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д