1
est ici la fonction C Je veux appeler:luajit comment libérer les données char * retour de la fonction c
char* decrypt(const char* str, int len) {
char* endata = malloc(len/2);
//assign
return endata;
}
ici est contenu 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)
aurait luajit c_str gratuit automatiquement?
Merci, je devrais utiliser ffi.gc pour enregistrer le finaliseur, puis LuaJIT appellera automatiquement le finaliseur, comme ffi.gc (c_str, ffi.c.free) – anwy