打印Lua中字符串的地址

我想要打印 Lua 中字符串的起始地址。有没有办法可以做到这一点?例如:

x = "abc"

现在我想要打印存储 "abc" 的地址。有没有方法可以实现这一点?然后我将把这个 x 传递给 C 程序,然后尝试打印接收到的 x 的地址,以查看 Lua 是否复制字符串,而是使用基地址的引用。

所以有没有方法可以实现这一点?

原文链接 https://stackoverflow.com/questions/8520332

点赞
stackoverflow用户513763
stackoverflow用户513763

在 Lua 中无法获取字符串的地址。

可能是因为没有必要。无论如何,字符串已经被内部化了。因此,每个字符串都只存在于内存中一次。将字符串文字分配给变量时,会检查用于存储字符串的哈希表以查找该字符串。如果找不到字符串,则添加该字符串,变量会得到对已加载字符串的引用。如果找到,则只是获得对现有字符串的引用。[Lua 5.0 的实现细节](http://www.jucs.org/jucs_11_7/the_implementation_of_lua/jucs_11_7_1159_1176_defigueiredo.html),字符串处理在 5.1 IRC 中并没有发生太大的变化。

这直接回答了您所需的问题,不是吗?

2011-12-15 13:10:30