3

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
Colonel Thirty Two
  • 23,953
  • 8
  • 45
  • 85
Victor Martins
  • 739
  • 7
  • 21

2 Answers2

6

You can use the lua_gettable method. There are a few important notes, however:

  1. Lua arrays start at index 1, not 0.
  2. You'll need to push the index onto the lua stack via lua_pushinteger.
  3. The key is "replaced" with the indexed element.
Drew McGowen
  • 11,471
  • 1
  • 31
  • 57
3

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).

lhf
  • 70,581
  • 9
  • 108
  • 149