Функция malloc() в библиотеке C с ПРИМЕРОМ

Что такое malloc в C?

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

Синтаксис

ptr = (cast_type *) malloc (byte_size);

Здесь,

  • ptr — это указатель cast_type.
  • Функция malloc возвращает указатель на выделенную память размером byte_size.
Example: ptr = (int *) malloc (50)

При успешном выполнении этого оператора резервируется пространство памяти размером 50 байт. Адрес первого байта зарезервированного пространства присваивается указателю ptr типа int.

Рассмотрим еще один пример реализации malloc:

#include <stdlib.h>
int main(){
int *ptr;
ptr = malloc(15 * sizeof(*ptr)); /* a block of 15 integers */
    if (ptr != NULL) {
      *(ptr + 5) = 480; /* assign 480 to sixth integer */
      printf("Value of the 6th integer is %d",*(ptr + 5));
    }
}

Вывод:

Value of the 6th integer is 480

Что такое malloc в C

  1. Заметить, что размер(*ptr) был использован вместо sizeof (число) чтобы сделать код более надежным, когда объявление *ptr позже будет приведено к другому типу данных.
  2. Выделение может завершиться неудачей, если памяти недостаточно. В этом случае он возвращает NULL-указатель. Итак, вам следует включить код для проверки NULL-указателя.
  3. Имейте в виду, что выделенная память является непрерывной и ее можно рассматривать как массив. Мы можем использовать арифметику указателей для доступа к элементам массива вместо использования скобок [ ]. Мы советуем использовать + для ссылки на элементы массива, поскольку использование приращения ++ или += изменяет адрес, хранящийся в массиве. указатель.

Функцию Malloc можно использовать как с символьными типами данных, так и со сложными типами данных, такими как структуры.