LuaJIT знает типы C определяет и длины массивов, но не проверяет границы:Есть ли возможность сделать проверку LuaJIT границей?
ffi = require("ffi")
ten_ints = ffi.typeof("int [10]")
p1 = ten_ints()
print(ffi.sizeof(p1)) -- 40
var_ints = ffi.typeof("int [?]")
p2 = ffi.new(var_ints, 10)
print(ffi.sizeof(p2)) -- 40
p1[1000000] = 1 -- segfault
p2[1000000] = 1 -- segfault
Есть ли способ сделать это делать, или это мой единственный выбор, чтобы написать фантики?
* Добавление дополнительных мер безопасности, таких как проверки границ, было бы бесполезным. * - что, если я просто определяю C-структуры для эффективности и никогда не называю C? В любом случае, спасибо за ответ! – MaxB