我想在Lua中打印字符串的起始地址。那么我有什么方法可以做到这一点吗?例如: -
x = "abc"
现在我要打印存储abc的地址。那有什么办法吗?然后我将这个x传递给一个C程序,然后尝试打印收到的x的地址,看看lua没有复制字符串但是使用了对基址的引用。
有没有办法做到这一点?
答案 0 :(得分:3)
无法在Lua中获取字符串的地址。
可能是因为没有必要。无论如何,字符串内化。所以每一个字符串都在内存中只有一次。将字符串文字分配给变量会检查用于存储字符串字符串的哈希表。如果未找到,则添加字符串,变量将获取对已加载字符串的引用。如果找到,它只会获得对现有字符串的引用。 Implementation details of Lua 5.0,字符串处理在5.1 IRC中没有太大变化。
直接回答了你需要它的问题,不是吗?