error: invalid static_cast from type ‘unsigned char*’ to type ‘uint32_t* {aka unsigned int*}’
uint32_t *starti = static_cast<uint32_t*>(&memory[164]);
char 배열을 할당했으며 4 바이트를 32 비트 int로 읽고 싶지만 컴파일러 오류가 발생합니다. 는 내가 조금과 같이 이동할 수 있다는 사실을 알고 :부호없는 char *을 unsigned int *로 변환 할 수 있습니까?
(start[0] << 24) + (start[1] << 16) + (start[2] << 8) + start[3];
을 그리고 그것은 같은 일을 할 것입니다, 그러나 이것은 추가 작업을 많이합니다.
어떻게 4 바이트를 int로 캐스트 할 수 있습니까?
그래. 'uint32_t val = * (uint32_t *) (void *) (memory + 164)); ' – IdeaHat
여기 좀보세요 : http://stackoverflow.com/questions/2473628/c-cant-static-cast-from- double-to-int? rq = 1 – Marius
이것은'C++'-y와 같지 않다는 것을 알아야한다. 예를 들어 파일이나 네트워크에서 '메모리'를 가져 오는 경우 엔디안을 걱정해야합니다. –