0
바이트 당 배열을 읽고 싶지만 배열은 1 바이트보다 큰 모든 유형 일 수 있습니다. 예바이트 당 배열 바이트 읽기
취하는 다음 코드
unsigned short numbers[5] = { 1, 2, 3, 4, 5 };
unsigned char* point = (unsigned char*) numbers;
for (int i = 0; i < 5; i++)
{
std::cout << (int) *point;
point ++;
}
어레이 형 unsigned short
이며, 따라서 각각의 요소들은 두 바이트 길이이다. 메모리의 연속 데이터를 읽으려면 길이가 1 비트 인 unsigned char
을 사용하려고합니다. 첫 번째 5 바이트를 인쇄하면 출력이 "01020"이 될 것으로 예상되지만 "10203"이됩니다. 첫 번째 바이트가 누락되었지만 그 이유는 모르겠습니다. IDE에서 numbers
과 point
의 주소를 확인했으며 둘 다 루프 전에 동일한 메모리 주소를 가리 킵니다.
컴퓨터가 [리틀 엔디안] (https://en.wikipedia.org/wiki/Endianness#Atomic_element_size_8-bit_2)이기 때문에 ... –