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

Содержание:

Anonim

Что такое 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 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

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

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