Je suis en train de parcourir une table Lua mais je continue à obtenir cette erreur:Itérer par Lua Tableau
invalid key to 'next'
Je sais que l'indice commence comme -8 et je sais qu'il ya une table là-bas parce qu'il obtient la première (et seule) valeur en elle. Cependant, il essaie de rebondir même si je sais qu'il n'y a qu'une seule chaîne dans la table.
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");
}
Toute aide serait appréciée.
Cela fonctionne bien lorsque j'utilise un indice positif (tant que je ne retire pas 1 de celui-ci)
Edit: J'ai remarqué que je ne comprends pas cette erreur si je laissez la valeur de l'élément seul. Ce n'est que lorsque je commence à lire la valeur de l'article que j'obtiens cette erreur. Quand j'ai la valeur de la table, j'appelle une autre fonction de Lua, est-ce que cela pourrait perturber lua_next?
Oui, après avoir largué le contenu de la pile avant et après , J'ai remarqué qu'il y a des restes à partir de quand j'ai appelé la fonction. –