Search code examples
clualua-tablelua-api

Getting array value from index using Lua C Api


I have this array:

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

How can I retrieve an index from that array to a C program?

For example:

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

Solution

  • Try this:

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

    After this, the value of a[1][2] will be on the top of the stack. The stack will also contain a and a[1], which you may want to pop when you're done (they're left on the stack in case you want to retrieve multiple values).