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

Функция calloc

#include <stdlib.h> 
void *calloc(size_t num, size_t size);

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

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

Пример

Эта функция возвращает указатель на динамически распределенный блок памяти для массива из 100 чисел типа float:

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

float *get_mem(void)
{
  float *p;

  p = calloc(100, sizeof(float));
  if(!p) {
    printf("Ошибка при распределении памяти\n");
    exit(1);
  }
    return p;
}

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

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