2010-03-19 4 views
2

BYTE 포인터가 있습니다. 예를 들어이 BYTE 배열의 길이는 10입니다. 3 바이트 BYTE 배열에서 4 바이트를 읽으려면 어떻게해야합니까?BYTE에서 일부 바이트를 읽는 방법 *

이제

나는 그것을 너무

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

은, 무슨 일이있어 일을 문제? – jcoder

+0

왜'void-pointers' 태그입니까? – dirkgently

+0

새 문장이 올바르지 않습니다 - 왜 [?] 뒤에 괄호가 붙은 것입니까? 필요에 따라 string/vector를 사용하지 않는 이유는 무엇입니까? –

답변

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

관련 문제