将字符串指针传递到lua

我在C中有一个很长的字符串,我想将它传递给lua函数。但由于字符串太长,我不想传递它,我想传递字符串指针给lua。我通过使用lua_pushlightuserdata来实现这一点,但在Lua中我不能使用该指针。

C代码:

char* st = "abcdefghijklmnopqrstuvwxyz1234567890";
lua_getglobal(myLuaState,"kk");
lua_pushlightuserdata(myLuaState,st);
lua_pcall(myLuaState,100);

Lua代码:

function kk(a)
    print(a)
end

代码的结果是:

userdata:0x41b4d8
点赞
用户2709904
用户2709904

你可以在Luajit中使用ffi

function kk(a)
    local ffi = require("ffi")
    s = ffi.string(a)
    print(s)
end

输出结果为:

abcdefghijklmnopqrstuvwxyz1234567890
2018-02-19 10:53:13