Получение значения массива из индекса с использованием Lua C Api
У меня есть этот массив:
a = {{4,2,2,6}, {2,1,1,2}}
Как я могу получить индекс из этого массива в C-программу?
Например:
a[1] -- {4,2,2,6}
a[1][2] -- 2
2 ответа
Решение
Попробуй это:
lua_getglobal(L,"a")
lua_rawgeti(L,-1,1)
lua_rawgeti(L,-1,2)
После этого значение a[1][2]
будет на вершине стека. Стек также будет содержать a
а также a[1]
, который вы можете захотеть получить, когда закончите (они останутся в стеке на случай, если вы захотите получить несколько значений).
Вы можете использовать lua_gettable
метод. Однако есть несколько важных замечаний:
- Массивы Lua начинаются с индекса 1, а не с 0.
- Вам нужно будет вставить индекс в стек lua через
lua_pushinteger
, - Ключ "заменяется" индексированным элементом.