Я пытаюсь перебрать таблицу 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?