有没有选择让LuaJIT做边界检查?

时间:2015-04-30 20:33:03

标签: lua luajit

LuaJIT知道它定义的C类型和数组的长度,但它不检查边界:

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

有没有办法让它这样做,或者是我写包装器的唯一选择?

0 个答案:

没有答案