luaJit如何释放从c函数返回的char *数据

时间:2017-03-20 11:15:56

标签: garbage-collection ffi 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)

会自动luajit free c_str吗?

1 个答案:

答案 0 :(得分:1)

  

会自动luajit free c_str吗?

不,它不会。 LuaJIT什么都不知道这个指针是什么。