Программирование на C и C++

Онлайн справочник программиста на C и C++

alloca

void *alloca(size_t size)

Прототип: 
Описание: 

Эта функция не определена стандартом ANSI С. Функция alloca() выделяет size байт памяти из стека системы (не из кучи) и возвращает на него указатель. Если запрос на выделение памяти не выполнен, то возвращается нулевой указатель.

Выделенная с использованием alloca() память автоматически освобождается при выходе из фун­кции, которая вызвала alloca(). Это означает, что указатель, возвращенный функцией alloca(), никогда не служит аргументом функции free().

ЗАМЕТКА: По техническим причинам, чтобы гарантировать сохранность стека, всякая функция, в которой используется вызов alloca(), должна содержать хотя бы одну локальную переменную, которой присваивается значение.

 

Пример: