2010-03-19 27 views
2

我有BYTE指针。例如,这个BYTE数组的长度是10. 如何从3位BYTE数组读取4个字节?如何从字节读取一些字节*

现在我做这么

BYTE *source = "1234567890\0"; 
BYTE* tmp = new BYTE[4+1](); 
for(int i=0; i<4; i++) 
{ 
tmp[i] = source[i+3]; 
} 
+0

这看起来是正确的,什么是问题? – jcoder 2010-03-19 08:50:53

+0

为什么'void-pointers'标签? – dirkgently 2010-03-19 08:57:40

+0

新的陈述看起来不正确 - 为什么在[]之后的一组禁忌?为什么不根据你的需要使用字符串/矢量? – 2010-03-19 09:01:01

回答

5

1)

std::vector<BYTE> tmp1(source + 3, source + 7); 

2)

BYTE tmp[5]; 
std::copy(source + 3, source + 7, tmp); 

3)

BYTE tmp2[5]; 
memcpy(tmp, source + 3, 4 * sizeof(source[0])); 
+0

投票赞成std :: copy。为什么我永远不会记得存在? – jcoder 2010-03-19 09:06:04