How to use a Lua variable in C++?

Question:

I can't get value from an array in Lua to use in C++.

So I get the value of the variable M :

//No LUA    
M = 85  

//No C++    
L = lua_open();
luaL_loadfile(L, "teste.lua");
lua_pcall(L, 0, 0, 0);

int m;

lua_getglobal(L, "M");
m = lua_tonumber(L, -1);

cout << m;

But I don't know how to get the index value of an array as follows:

// LUA
MATRIZ =
{

   {4,2,2,6},
   {2,1,1,2},
   {2,1,1,2},
   {5,2,2,3}

}

How to get the value of this array?

Answer:

You can use the lua_gettable method.

  1. You need to add the index to the stack via lua_pushinteger .
  2. The key is overlaid with the element.

You can also try:

lua_getglobal(L, "MATRIZ")
lua_rawgeti(L,-1,1) -- {4,2,2,6}
lua_rawgeti(L,-1,2) -- 2

Solutions coming from my question on StackOverflow (EN).

Scroll to Top