【发布时间】:2014-10-13 01:32:40
【问题描述】:
线程“Size of wchar_t* for surrogate pair”显示,保存 wchar_t 值所需的内存大小可能不同,因为它可能需要更多空间来编码某些字符(代理对)。这让我想到了以下问题:然后我如何沿着 wchar_t 值的数组导航?因为我现在不仅可以将当前地址增加或减少固定大小的 wchar_t。
更正:“我如何然后沿着 wchar_t 值的数组导航”是指您如何在代码点之间导航,这些代码点可能由可变数量的 wchar_t 值表示。
【问题讨论】:
-
对不起:这是 C 还是 C++?
-
@Sam 我认为您需要返回并重新阅读该问题的答案。关键是
wchar_t和wchar_t*的大小不同。存储wchar_t所需的大小将在您的程序中保持一致。 -
也许你误读了你链接的问题;那只是在谈论
sizeof(wchar_t)和sizeof(wchar_t *)。它没有谈论使用多少个字符来编码代理对(OP认为它确实如此,但他错了)。你能澄清你的问题吗? -
我认为问题是例如 Han character 使用 2 个 wchar_t 字符。所以
ptr++和ptr--在这里不起作用,因为它只移动 1 个 wchar_t。如何导航? -
威梅尔成功了。正是我的意思
标签: c++ c arrays unicode wchar-t