void *alloca(size_t size)
Прототип:
Описание:
Эта функция не определена стандартом ANSI С. Функция alloca() выделяет size байт памяти из стека системы (не из кучи) и возвращает на него указатель. Если запрос на выделение памяти не выполнен, то возвращается нулевой указатель.
Выделенная с использованием alloca() память автоматически освобождается при выходе из функции, которая вызвала alloca(). Это означает, что указатель, возвращенный функцией alloca(), никогда не служит аргументом функции free().
![]() |
ЗАМЕТКА: По техническим причинам, чтобы гарантировать сохранность стека, всякая функция, в которой используется вызов alloca(), должна содержать хотя бы одну локальную переменную, которой присваивается значение. |
Пример: