我在将Lua字符串转换为C char arry时遇到了一个奇怪的问题。
local str = "1234567890abcdef"
local ffi = require "ffi"
ffi.cdef[[
int printf(const char *fmt, ...);
]]
print(#str)
print(str)
local cstr = ffi.new("unsigned char[?]", #str, str)
运行此代码获取:
[root@origin ~]# luajit test.lua
16
1234567890abcdef
Segmentation fault
我知道ffi.new("unsigned char[?]", #str+1, str)
会解决这个问题,但我不知道为什么。
我不认为这是