|
|
Функция |
|
void * |
alloca (size_t __size) |
Захватывает __size байт памяти в стеке.
Это
временное
пространство
автоматически
освобождается
при выходе из
функции alloca(). В Avr-libc alloca()
определяется
как макрос,
который
оттранслирован
в
подставляемую
функцию __
builtin
_
alloca
()
.
Тот факт, что
код является
подставляемым,
означает то,
что
невозможно
взять адрес
этой функции,
или изменять
её поведение,
связываясь с
различными
библиотеками.
Возвращение:
alloca() возвращает указатель на начало захваченного пространства. Если захват вызывает переполнение стека, поведение программы неопределенно.
Внимание:
Избегайте использования alloca() в списке параметров вызывающей функции.
Подробнее
про alloca см. Библиотека
языка C GNU glibc/Распределение
памяти/Автоматическая
память с
учетом
размера переменной.