1

Lua c apiを使用して次のC言語構造を作成するにはどうすればよいですか?

typedef struct _c{
    int d;
} obj_c;
typedef struct _b{
    obj_c c[4];
}obj_b;
typedef struct _a{
    obj_b b;
}obj_a;
obj_a a[4];

lua a[1].bc[1].d = 1; の上記の構造。併用してみましたが、うまくいきません。エラー メッセージ: PANIC: Lua API の呼び出しで保護されていないエラーが発生しました (数値のインデックスを作成しようとしています)

ルアで a[1].bc = 1; このように使用するために、次のコードを書きました。このコードは正常に動作します。

lua_createtable(L, 2, 0); // stack: {} : -1
{
    lua_pushnumber(L, 1); // stack: {}, 1 : -2
    {
        lua_newtable(L); // stack: {}, 1, {} : -3

        lua_createtable(L, 0, 1); // stack: {}, 1, {}, {} : -4
        lua_pushnumber(L, 49);
        lua_setfield(L, -2, "c");

        lua_setfield(L, -2, "b");
        lua_settable(L, -3);
    }
    lua_pushnumber(L, 2); // stack: {}, 2 : -2
    {
        lua_newtable(L); // stack: {}, 2, {} : -3

        lua_createtable(L, 0, 1); // stack: {}, 2, {}, {} : -4
        lua_pushstring(L, 50);
        lua_setfield(L, -2, "c");

        lua_setfield(L, -2, "b");
        lua_settable(L, -3);
    }
}
lua_pop(L, -2);
lua_setglobal(L, "a");

どうすればよいですか a[1].bc[1].d = 1; 同じ形で作れますか?

4

1 に答える 1