1
を返された、私が呼び出したいC関数です:のchar *のデータを解放する方法luaJitは、ここでは、C関数から
char* decrypt(const char* str, int len) {
char* endata = malloc(len/2);
//assign
return endata;
}
ここでは、Luaのコンテンツです:
local ffi = require "ffi"
local rsa = ffi.load("test.so")
ffi.cdef[[
char* decrypt(const char* str, int len);
]]
local str = "256b5740ed16e5b15146816f77b0ab74de43d58ab367e9ac850642514f5cc4880e899a6a7775aa"
local c_str = test.decrypt(str, 256)
local lua_str = ffi.string(c_str, 128)
は無料c_strをluajitう自動的に?
ありがとう、私はファイナライザを登録するためにffi.gcを使うべきです、そして、LuaJITはffi.gc(c_str、ffi.c.free)のようにファイナライザを自動的に呼び出します。 – anwy