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; 同じ形で作れますか?