Malloc | это... Что такое Malloc? (original) (raw)

malloc

malloc (от англ. memory allocation, выделение памяти) и calloc (от англ. clear allocation, чистое выделение (памяти)) — функции выделения динамической памяти, входящие в стандартную библиотеку языка Си.

Содержание

Описание функций

#include <stdlib.h>

void *malloc (size_t size); void *calloc (size_t num, size_t size);

Назначение

malloc принимает в качестве аргумента размер выделяемой области в байтах; возвращает нетипизированный указатель (void*) на область памяти заявленного размера или NULL в случае, если выделить память невозможно. Содержимое выделяемой области памяти не определено.

calloc принимает в качестве аргумента количество элементов и размер каждого элемента в байтах; возвращает нетипизированный указатель (void*) на область памяти заявленного размера или NULL в случае, если выделить память невозможно. Значения элементов устанавливаются в ноль. malloc работает быстрее, чем calloc, в связи с отсутствием функции обнуления выделяемой памяти.

Параметры функций

malloc

calloc

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

Функции возвращают нетипизированный (void*) указатель на область памяти в случае успеха, либо NULL в противном случае.

Характерные ошибки при использовании

Точное поведение функций описано в стандарте ANSI C, на него же ссылается определение функции в стандарте POSIX.

Примеры использования

malloc

float dynamic_array = malloc(number_of_elements * sizeof(float)); if(!dynamic_array) { / обработка ошибки выделения памяти */ }

/* … работа с элементами массива … */

free(dynamic_array); dynamic_array = NULL;

calloc

float dynamic_array = calloc(number_of_elements, sizeof(float)); if(!dynamic_array) { / обработка ошибки выделения памяти */ }

/* … работа с элементами массива … */

free(dynamic_array); dynamic_array = NULL;

См. также

Источники

Wikimedia Foundation.2010.