使用Lua C API从索引中获取数组值

我有这个数组:

a = {{4,2,2,6}, {2,1,1,2}}

我如何从这个数组中检索一个索引到 C 程序中呢?

例如:

a[1] -- {4,2,2,6}
a[1][2] -- 2
点赞
用户2478565
用户2478565

你可以使用lua_gettable方法。然而,有几个重要注意事项:

  1. Lua数组从索引1开始,而不是0。
  2. 你需要通过lua_pushinteger将索引推入Lua栈中。
  3. 这个索引元素会替换掉原键。
2014-08-14 02:35:05
用户107090
用户107090

尝试一下:

lua_getglobal(L,"a")     -- 获取全局变量 a
lua_rawgeti(L,-1,1)      -- 获取 a[1]
lua_rawgeti(L,-1,2)      -- 获取 a[1][2]

执行完上述代码后,a[1][2] 的值将在堆栈的顶部。堆栈中还包含 aa[1],完成后您可能需要将它们出栈(它们保留在堆栈中以便检索多个值)。

2014-08-14 02:39:13