강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

jbw217님의 프로필 이미지
jbw217

작성한 질문수

홍정모의 따라하며 배우는 C++

6.9 포인터 연산과 배열 인덱싱

1:47 uintptr_t 질문입니다.

작성

·

1.2K

1

uintptr_t 가 hex로 반환되는 값을 unsigned int 10진수로 바꿔주는 것으로 알았는데요.

직접 형변환을 해보니 값이 다르게 나오네요. 왜그런건가요?

 

답변 1

2

안녕하세요, 답변 도우미 Soobak 입니다. 😀

우선, 비슷한 질문의 다른 글 의 제 답변을 참고해보시는 것을 추천드립니다.

추가적으로 설명드려보면, uintptr_t 자료형은 다양한 운영체제 환경간의 호환성을 고려하여, 환경마다 각각 크기가 다르게 정의되는 자료형 입니다. 따라서, 질문자님의 환경에 따라서 다르게 정의됩니다.

uintptr_t 자료형은 C++ 에서 <stdint.h> 헤더에 정의되어 있는데요,
제 환경을 기준으로 unsigned long int 타입으로 정의되어 있네요.

image

즉, 질문자님의 환경에서 uintptr_t 자료형이 unsigned int 타입으로 정의되어있다는 보장을 할 수가 없습니다.

따라서, 질문자님께서 uintptr_t 로 형변환 하여 출력을 했을 때와,
unsigned int 로 형변환 하여 출력했을 때의 값이 달라질 수 있는 것입니다.

답변이 되셨길 바라며, 추가적으로 궁금하신 부분이 있으시면 언제든지 편하게 질문 글 남겨주세요!
감사합니다. 화이팅! 👍

 

jbw217님의 프로필 이미지
jbw217

작성한 질문수

질문하기