2012-04-12 27 views
0

我试图访问一个宽字符数组中的个别字节,这样我可以通过Winsock发送它,这是我到目前为止有:访问单个字节数组

WCHAR* buffer_in_bytes = (WCHAR*)msc->wcArray; 
unsigned char l; 
for (unsigned int i = 0; i <= (msc->bSize*2); i++) 
{ 
    l = (unsigned char)(*(buffer_in_bytes +i)); 
    char s[256] ; 
    _itoa(l,s,16); 
    OutputDebugString(s); 
} 

他们数组包含一系列(s)(aaaaaaaaaaaaaaaaaaaa ....),并且我期望看到00 61 00 61 00 61作为我得到的结果61 61 61 61 61 61

任何想法为什么?

回答

0

每个元素都包含一个'a'或ASCII 61,这是您看到的打印内容。我不知道为什么你会看到这些穿插0。

+0

这是一个wchar数组,因此每个字符占用两个字节,实际上查看内存视图中的数组显示为(61 00 61 00 61 00 61 00 ..) – 2012-04-12 19:13:36

+0

但是您正在读取每个数组元素,不管它的大小。也许如果你把它作为一个1字节的项目数组... – 2012-04-12 19:17:13

+0

得到它工作的感谢! – 2012-04-12 19:21:19