在LUA FFI中将指针传递给int

时间:2014-01-23 02:49:32

标签: ffi luajit

我有一个C函数如下

ffi.cdef [[

typedef struct {
    int index;
    char name[10];
} entry_key_t;

extern entry_t *lookup_entry(entry_key_t *key, int *err);

]]

我在传递“int *”时遇到了麻烦,我尝试了以下变种,

local err_val = ffi.new(“int [1]”) local err_val = ffi.new(“int *”)

程序崩溃,因为传递给函数的“错误”为NULL。 (请注意,我可以在执行ffi.new(“entry_key_t [1]”)之后传递指针'key')

我错过了什么?我正在使用LuaJIT 2.0.2。

1 个答案:

答案 0 :(得分:2)

不确定这对你有用,但我用于params的模式是:

local intPtr = ffi.typeof"int[1]"

local key = ffi.new("entry_key_t[1]")
local err = intPtr()

lookup_entry(key,err)

print(err[0])