2011-12-15 121 views
1

我想在Lua中打印字符串的起始地址。那麼有什麼辦法可以做到這一點?例如: -Lua中字符串的打印地址

x = "abc" 

現在我想打印存儲abc的地址。那麼有沒有辦法做到這一點?然後我將這個x傳遞給C程序,然後嘗試打印接收到的x的地址,以查看lua沒有複製字符串,而是使用對基地址的引用。

那麼有什麼辦法可以做到嗎?

回答

3

在Lua中沒有辦法獲得一個字符串的地址。

可能是因爲沒有必要。無論如何,字符串都是內在的。所以每一個字符串都只在內存中一次。將字符串文字分配給變量會檢查用於存儲字符串的散列表。如果未找到該字符串,則該變量將獲取對加載字符串的引用。如果找到,它只會獲取對現有字符串的引用。 Implementation details of Lua 5.0,字符串處理在5.1 IRC中沒有發生巨大變化。

直接回答你需要的問題,不是嗎?