Содержание | Глава 17

Функция malloc

#include <stdlib>
void *malloc(size_t size);

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

Пример

Эта функция выделяет память для структуры типа addr:

struct addr {
  char name[40];
  char street[40];
  char city[40];
  char state[3];
  char zip[10];
};

struct addr *get_struct(void)
{
  struct addr *p;

  if((p = malloc(sizeof(struct addr)))==NULL) {
    printf("Ошибка при распределении памяти\n");
    exit(1);
  }
  return p;
}

Зависимые функции

free() realloc() calloc()
Содержание | Глава 17