Функция 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
- Заметить, что размер(*ptr) был использован вместо sizeof (число) чтобы сделать код более надежным, когда объявление *ptr позже будет приведено к другому типу данных.
- Выделение может завершиться неудачей, если памяти недостаточно. В этом случае он возвращает NULL-указатель. Итак, вам следует включить код для проверки NULL-указателя.
- Имейте в виду, что выделенная память является непрерывной и ее можно рассматривать как массив. Мы можем использовать арифметику указателей для доступа к элементам массива вместо использования скобок [ ]. Мы советуем использовать + для ссылки на элементы массива, поскольку использование приращения ++ или += изменяет адрес, хранящийся в массиве. указатель.
Функцию Malloc можно использовать как с символьными типами данных, так и со сложными типами данных, такими как структуры.