Спасибо. Чую долго бы я еще развлекался...
Итоговое безобразие получилось такое:
Код
local ffi = require("ffi")
ffi.cdef([[
typedef int int2d[10];
]])
local int100 = ffi.new("int[100]")
for i = 0, 100 do
int100[i] = i
end
local arr = ffi.cast("int2d*", int100)
log(tostring(arr[0][1]))
log(tostring(arr[1][1]))
Размерность сделал в typedef на одну меньше иначе пришлось бы указатель каждый раз разименовывать через [0] и по факту получить доп размерность. Фишки luajit.
указатель на int100 улетает в либу, результат в луа.
Сообщение отредактировал DarkMaster - 10.8.2022, 2:34