Я пытаюсь перебрать таблицу lua, но продолжаю получать эту ошибку:
invalid key to 'next'
Я знаю, что индекс начинается с -8, и я знаю, что там есть таблица, потому что она получает первое (и единственное) значение в этом. Однако он пытается выполнить цикл снова, хотя я знаю, что в таблице только одна строка.
if (lua_istable(L, index))
{
lua_pushnil(L);
// This is needed for it to even get the first value
index--;
while (lua_next(L, index) != 0)
{
const char *item = luaL_checkstring(L, -1);
lua_pop(L, 1);
printf("%s\n", item);
}
}
else
{
luaL_typerror(L, index, "string table");
}
Любая помощь будет принята с благодарностью.
Это отлично работает, когда я использую положительный индекс (если я не удалите из него 1)
Изменить: Я заметил, что не получаю эту ошибку, если оставлю значение элемента в покое. Только когда я начинаю читать значение элемента, я получаю эту ошибку. Получив значение из таблицы, я вызываю другую функцию Lua, может ли это нарушить работу lua_next?