Man pages на русском

         

MALLOC(3X)


НАЗВАНИЕ

malloc, free, realloc, calloc, mallopt, mallinfo - быстрое выделение оперативной памяти

СИНТАКСИС

#include <malloc.h>

char *malloc (size) unsigned size;

void free (ptr) char *ptr;

char *realloc (ptr, size) char *ptr; unsigned size;

char *calloc (nelem, elsize) unsigned nelem, elsize;

int mallopt (cmd, value) int cmd, value;

struct mallinfo mallinfo ( )

ОПИСАНИЕ

Функции malloc и free предоставляют простой универсальный механизм выделения и освобождения памяти, работающий значительно быстрее пакета . Описываемые функции находятся в библиотеке malloc и подключаются при использовании опции -lmalloc команд и .

Функция malloc возвращает указатель на блок размером не менее size байт, который можно использовать в произвольных целях.

Аргументом функции free является указатель на блок, предварительно выделенный с помощью malloc; после выполнения free блок может быть выделен вновь, а хранящаяся в нем информация теряется (см. однако описание функции mallopt, команда M_KEEP).

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

Функция realloc изменяет размер блока, на который указывает ptr, до размера size и возвращает указатель на возможно смещенный блок. Часть содержимого блока до наименьшего из нового и старого размеров не изменяется.

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

С помощью функции mallopt можно управлять алгоритмами выделения и освобождения памяти. Допускаются следующие значения аргумента cmd:

M_MXFAST

Установить величину maxfast равной аргументу value. Алгоритм отводит место сразу для большой группы блоков, размер которых не превосходит maxfast, а затем по запросам очень быстро выдает их. Подразумеваемое значение maxfast равно 24. M_NLBLKS

Установить величину numblks равной аргументу value. Каждая из вышеупомянутых "больших групп" содержит numblks блоков. Число блоков должно быть больше 0; подразумеваемое значение numblks равно 100. M_GRAIN

Установить величину grain равной аргументу value. Размеры всех блоков, не превосходящие maxfast, округляются вверх до ближайшего кратного grain. Значение grain должно быть больше 0; подразумеваемое значение таково, чтобы обеспечить правильное выравнивание по границе данных любого типа. При изменении grain аргумент value округляется вверх до ближайшего кратного значения по умолчанию. M_KEEP

Сохранить данные в освобождаемом блоке до следующих вызовов функций malloc, realloc или calloc. Эта опция предоставлена только для совместимости со старой версией malloc; пользоваться ей не рекомендуется. <



Содержание раздела