1

以下のような表があります。

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);
}
4

0 に答える 0