我在文档中看到ffi.C.free是我可以用来释放malloc的东西。我试图在这里这样做:
callbacks.free_buffer = function(buffer)
print("free_buffer_callback")
ffi.C.free(buffer)
end
我收到此错误:
missing declaration for symbol 'free'
这是否意味着我必须首先用FFI对内存进行malloc?我不能在这个特定的函数中做到这一点(因为它是回调中的参数)。我该怎么做才能释放这个缓冲区?
编辑:看起来所有的ffi.C功能都不起作用,即使在回调函数之外也是如此。我的ffi似乎工作正常吗?答案 0 :(得分:5)
哎呀,没有把free
放进我的cdef
!固定的。
ffi.cdef[[
void free(void *ptr);
]]