바이트를 포함하는 vector<int>
이 char[]
으로 변환되는 아래 코드가 있습니다. 이 char[]
이 출력됩니다.C++ 변환 바이트
vector<int> data;
data.push_back(33);
data.push_back(69);
data.push_back(80);
data.push_back(0);
data.push_back(0);
data.push_back(74);
data.push_back(255);
char* result = new char[data.size()];
for(int i = 0; i < data.size(); i++) {
result[i] = (char)data[i];
cout << i << " = " << (char)data[i] << endl;
}
cout << "--" << endl;
for(int i = 0; i < sizeof(result); i++) {
cout << i << " = " << result[i] << endl;
}
이 코드는 다음과 같은 결과를 산출합니다.
0 = !
1 = E
2 = P
3 =
4 =
5 = J
6 = �
--
0 = !
1 = E
2 = P
3 =
그러나, 나는이 크기 함께 할 수있는 뭔가가 생각,하지만 확실하지 오전
0 = !
1 = E
2 = P
3 =
4 =
5 = J
6 = �
--
0 = !
1 = E
2 = P
3 =
4 =
5 = J
6 = �
수를 예상했다.
코드에 어떤 문제가 있습니까?
'sizeof (result)'는 포인터 크기이기 때문에 sizeof (result)는 4 (또는 x64는 8)가됩니다. –