2011-12-15 79 views
1

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

x = "abc" 

现在我想打印存储abc的地址。那么有没有办法做到这一点?然后我将这个x传递给C程序,然后尝试打印接收到的x的地址,以查看lua没有复制字符串,而是使用对基地址的引用。

那么有什么办法可以做到吗?

回答

3

在Lua中没有办法获得一个字符串的地址。

可能是因为没有必要。无论如何,字符串都是内在的。所以每一个字符串都只在内存中一次。将字符串文字分配给变量会检查用于存储字符串的散列表。如果未找到该字符串,则该变量将获取对加载字符串的引用。如果找到,它只会获取对现有字符串的引用。 Implementation details of Lua 5.0,字符串处理在5.1 IRC中没有发生巨大变化。

直接回答你需要的问题,不是吗?