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

时间:2014-08-14 01:58:18

标签: c lua lua-table lua-api

我有这个数组:

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

如何从该数组中检索索引到C程序?

例如:

a[1] -- {4,2,2,6}
a[1][2] -- 2

2 个答案:

答案 0 :(得分:6)

您可以使用lua_gettable方法。然而,有一些重要的注释:

  1. Lua数组从索引1开始,而不是0。
  2. 您需要通过lua_pushinteger将索引推送到lua堆栈。
  3. 关键是"替换"使用索引元素。

答案 1 :(得分:3)

试试这个:

lua_getglobal(L,"a")
lua_rawgeti(L,-1,1)
lua_rawgeti(L,-1,2)

此后,a[1][2]的值将位于堆栈的顶部。堆栈还将包含aa[1],您可能希望在完成后弹出它们(如果您想要检索多个值,它们将保留在堆栈中)。