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