Estoy tratando de recorrer una tabla lua, pero me siguen dando este error:iterar a través de la tabla Lua
invalid key to 'next'
sé que el índice comienza como -8 y sé que hay una mesa allí porque obtiene el primer (y único) valor en él. Sin embargo, intenta dar vueltas nuevamente aunque sé que solo hay una cadena en la tabla.
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");
}
Cualquier ayuda sería apreciada.
Esto funciona bien cuando se utiliza un índice positivo (siempre y cuando no quito 1 de ella)
Editar: me he dado cuenta de que no me sale este error si deje el valor del artículo solo. Solo cuando empiezo a leer el valor del artículo obtengo este error. Cuando obtengo el valor de la tabla, llamo a otra función Lua, ¿podría estar interrumpiendo lua_next?
Sí, después de volcar el contenido de la pila antes y después , Noté que hay restos de cuando llamé a la función. –