Справочное руководство по языку Lua 5.1 :: 3.2 - Псевдо-индексы
3.2 – Размер стека
При использовании Lua API вы должны сами предупреждать возможные ошибки исполнения. Иногда, возникает необходимость контроля за переполнением стека. Для получения размера стека используйте функцию lua_checkstack.
Для вызова из Lua кода на C необходимо иметь в наличии свободной памяти по крайней мере на LUA_MINSTACK позиций стека. LUA_MINSTACK по умолчанию равно 20. Таким образом, вам не придется заботится о стеке (если только ваш код не помещает туда значения в цикле).
Большинство функций принимают любое количество входных параметров, оно ограничено только размером стека. Если размера стека не хватает, его можно увеличить функцией lua_checkstack. Все допустимые индексы стека удовлетворяют условию:
(index < 0 && abs(index) <= top) ||
(index > 0 && index <= stackspace)
Заметим, что 0 не является допустимым индексом.