Функция calloc

Прототип функции calloc:

void * calloc( size_t number, size_t size );
Название Язык
stdlib.h С
cstdlib С++

Описание

Функция calloc выделяет блок памяти для массива размером — num элементов, каждый из которых занимает   size байт, и инициализирует все свои биты в нулями.

В результате выделяется блок памяти размером number * size байт, причём весь блок заполнен нулями.

Параметры:

  • number
    Количество элементов массива, под который выделяется память.
  • size
    Размер одного элемента в байтах.

Возвращаемое значение

Указатель на выделенный блок памяти. Тип данных на который ссылается указатель всегда void*, поэтому это тип данных может быть приведен к желаемому типом данных.
Если функции не удалось выделить требуемый блок памяти, возвращается нулевой указатель.

Пример: исходный код программы

//пример использования функции calloc
#include <iostream>
#include <cstdlib>

int main()
{
  int size;

  std::cout << ("Введите количество элементов: ");
  std::cin >> size;
  int * arrayPtr = (int*) calloc(size,sizeof(int)); // выделяем память под динамический массив целых чисел

  if (arrayPtr == NULL) exit (1);                   // завершить работу программы

  for (int ix = 0; ix < size; ix++)                 // в цикле заполняем массив с клавиатуры
  {
    std::cout << ("Введите число: ");
    std::cin >> arrayPtr[ix];
  }

  std::cout << "Введённые числа: ";
  for (int ix = 0; ix < size; ix++)                 // в цикле выводим элементы массива на стандартное устройство вывода
      std::cout << arrayPtr[ix] << " ";
  free (arrayPtr);                                  // удаляем динамический массив чисел
  return 0;
}

Пример работы программы

Эта программа просто хранит в памяти числа, а затем печатает их. Но количество элементов массива может изменяться по мере необходимости их использования, так как функция calloc выделяет столько динамической памяти, сколько необходимо программе, не больше не меньше.

CppStudio.com
Введите количество элементов: 7
Введите число: -3
Введите число: -2
Введите число: -1
Введите число: 0
Введите число: 1
Введите число: 2
Введите число: 3
Введённые числа: -3 -2 -1 0 1 2 3
Автор: admin
Дата: 02.09.2012
Поделиться:

Комментарии

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.