以下のような表があります。
Table = {
1, 2, 3,
6, 7, 8,
11, 12, 13,...
}
そのテーブルを読み取って、いくつの値が読み取られたかを言いたいのですが、以下のコードで問題が発生するほど、PANIC の読み取り時に常に次のエラーが発生します: Lua API の呼び出しで保護されていないエラーが発生します
私はlua 5.2を使用していますが、ここでエラーが指摘されています
lua_getfield (L, -1, "Table");
誰かがこの読書を手伝ってくれますか、私はルアが初めてです。
void read_table(void) {
int var1;
long double var2;
lua_State *L;
L = = luaL_newstate();
luaL_openlibs(L);
if (luaL_loadfile(L, "table.lua") || lua_pcall(L, 0, 0, 0)) {
printf("cannot run cofig file: %s\n");
return;
}
else {
lua_getfield(L, -1, "Table");
if (lua_type(L, -1) == 5) {
var1 = 1;
while (1)
{
lua_pushnumber(L, var2);
lua_gettable(L, -2);
if (!lua_isnumber(L, -1))
break;
lua_tonumber(L, -1);
lua_settop(L, -2);
++var1;
lua_close(L);
}
printf("table %d invalid\n", var1);
}
else {
printf("table should be a table\n");
}
}
printf("Reading %d numbers\n", var1);
}