大家好:
小弟我luajit新手,最近忙着用luajit的ffi链接mp123.so,可是有一处遇到问题:
C定义:
int mpg123_decode_frame(mpg123_handle *mh, off_t *num, unsigned char **audio, size_t *bytes);
我的lua写法是:
......
local framenum = ffi.new("off_t[1]")
function play_frame()
local audio = ffi.new("unsigned char[?]")
local bytes = ffi.new("size_t[1]")
local mc = mpg123.mpg123_decode_frame(mpg123_handle, framenum, audio, bytes)
......
end
这个audio是unsigned char **型指针,我不懂怎么用ffi.new去声明这个变量,我运行lua文件就报错:
bad argument #2 to 'new' (value expected)
stack traceback:
[C]: in function 'new'
p.lua:48: in function 'play_frame'
p.lua:54: in main chunk
[C]: at 0x004049d0
不知哪位熟手能给个提式.