Передача 2D таблицы из Lua в C ++ - PullRequest
0 голосов
/ 10 июля 2019

Я искал часы, чтобы передать 2d таблицу из Lua в C ++.Документы Lua действительно отстойные.

У меня есть эта таблица на Lua 5.1 , и я хочу передать ее в c ++

local costs = {
[0] = {
    1.0,
    1.0,
    1.0,
    1.0,
    1.41,
    1.41,
    1.41,
    1.41,
},
[1] = {
    2.0,
    2.0,
    2.0,
    2.0,
    2.41,
    2.41,
    2.41,
    2.41,
}

}

Thisработает с простой одномерной таблицей, но я даже не могу получить ключи с ней

int len = lua_rawlen(L, 1);
for (int i = 0; i < len; i++)
{
  lua_pushinteger(L, i + 1);
  lua_gettable(L, -2);
  printf("Key %i\n", lua_tointeger(L, -1));
  lua_pop(L, 1);
}

Как мне правильно получить эту таблицу?

1 Ответ

0 голосов
/ 10 июля 2019

Я нашел это: Итерация многомерной таблицы Lua в C

Это работает. Но если есть лучшее решение, я действительно хочу учиться. Я предпочитаю использовать цикл for с размером, но lua_rawlen всегда возвращает 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...