Получение значения массива из индекса с использованием 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 метод. Однако есть несколько важных замечаний:

  1. Массивы Lua начинаются с индекса 1, а не с 0.
  2. Вам нужно будет вставить индекс в стек lua ​​через lua_pushinteger,
  3. Ключ "заменяется" индексированным элементом.
Другие вопросы по тегам