Как создать массив с помощью Malloc() в программировании на C?

Давайте поговорим о функциональном программировании Программирование и разработка

В программировании на C массив используется для хранения диапазона значений одного и того же типа данных и занимает некоторое пространство в памяти, которое может быть статическим или динамическим. malloc — это функция, используемая в программировании на c для динамического выделения памяти.

В этой статье мы узнаем о функции malloc для создания массива в программировании на языке C.

Что такое malloc() в программировании на C?

Динамическая память выделяется программе во время ее выполнения в соответствии с объемом необходимого ей пространства. В статической памяти фиксированная память выделяется программе перед выполнением программы, что имеет следующие недостатки:

  • Массив, объявленный с фиксированным размером, будет занимать фиксированный размер в системной памяти.
  • Если массив имеет значения меньше заявленного размера, свободное пространство будет потрачено впустую и не может быть использовано другой программой.
  • Если в массиве есть значения больше заявленного размера, программа может выдавать ошибки

Чтобы избежать этих недостатков, мы будем использовать схему динамического распределения памяти, так как эта схема будет выделять память блока, необходимого программе во время ее выполнения. Динамическая память имеет различные функции, используемые в качестве указателя на программу.

Функция malloc() означает «выделение памяти» и используется для динамического выделения памяти во время выполнения программы. Когда вызывается функция malloc(), она отправляет запрос блока памяти в кучу (это сегмент памяти, где память выделяется случайным образом). Если в куче есть память, эквивалентная этому блоку памяти, она примет запрос и назначит этот размер функции malloc() по своему запросу, а если памяти нет, то вернет нулевое значение. Когда мы закончим с блоком памяти, мы можем очистить его с помощью функции free(), чтобы блок памяти мог освободиться и использоваться другими инструкциями программы. Для динамического выделения памяти мы должны включить «stdlib.h» в файлы заголовков, а общий синтаксис использования функции malloc:

$ pointer = (castType*) malloc(size);

Мы можем использовать любую переменную вместо «указателя», тогда мы можем заменить «castType» типом данных, значения которого будут храниться в массиве. Затем используйте функцию malloc() и укажите размер необходимой нам памяти.

Читайте также:  Функция sin в C

Как использовать функцию malloc в программировании на C для создания массива?

Для лучшего понимания создания массива с помощью функции malloc() создадим программу. Чтобы использовать программирование c в Linux, мы должны установить компилятор GCC с помощью команды:

$ sudo apt install gcc

Создайте текстовый файл с помощью редактора nano:

$ nano myfile.c

Введите следующий код:

# include <stdio.h># include <stdlib.h>

int main (void)

{

int size, i, *my_array;

printf(“\n Please type the size of array: ”);

scanf(“%d”, &size);

my_array=(int*)malloc(size * sizeof(int));

printf(“\n Enter the values of Array: ”);

for (i=0; i<size;i++)

scanf(“%d”, &my_array[i]);

printf(“\n The values in the array are: ”);

for (i=0; i<size;i++){

printf(“%d ”, my_array[i]);}

printf(“\n”);}

Сохраните скрипт под именем «myfile.c» с помощью CTRL+S, а затем выйдите из редактора, нажав CTRL+X. Сохранив его, скомпилируйте код и проверьте, есть ли ошибки или нет, с помощью команды:

$ gcc myfile.c -o myfile

«myfile» будет исполняемым файлом, запустите «myfile» с помощью команды:

$ ./myfile

Программа успешно выполнена. Объяснение приведенного выше кода таково:

  • Мы включили библиотеки c: hдля динамического выделения памяти и stdio.h для других функций, таких как printf и scanf.
  • Мы инициализировали основную часть программы с помощью void, потому что функция не будет возвращать значение.
  • Также мы объявили две переменные size, i и указатель » *my_array».
  • Просто использовал команду printfдля печати » Пожалуйста, введите размер массива » и сохранил ввод пользователя в переменной » размер «.
  • Затем, используя функцию malloc, запросила у кучи выделение памяти в соответствии со значением, хранящимся в переменной » size», и назначила память массиву.
  • Попросил пользователя ввести значения массива и сохранить их в массиве с помощью цикла for.
  • Наконец, распечатал все значения my_array,используя цикл for

Вывод

Функция malloc() используется для динамического выделения памяти, а также может использоваться для хранения значений в массиве. В этой статье мы обсудили, как объявить и использовать массив с помощью функции malloc(). Подход с динамическим выделением памяти рекомендуется, когда вы хотите изменить размер массива во время выполнения программы.

Оцените статью
bestprogrammer.ru
Добавить комментарий