C++

C++의 캐스팅 - reinterpret_cast

monstro 2024. 4. 14. 21:32
728x90
반응형

이번 포스팅에서는 C++의 캐스팅 중에서 reinterpret_cast에 대해 알아보도록 하겠습니다.

 

구성은 다음과 같습니다.

 

  • static_cast
  • dynamic_cast
  • reinterpret_cast
  • const_cast

1)  reinterpret_cast란?

https://learn.microsoft.com/ko-kr/cpp/cpp/reinterpret-cast-operator?view=msvc-170

 

reinterpret_cast 연산자

자세한 정보: reinterpret_cast 연산자

learn.microsoft.com

 

위의 공식문서의 설명과 같이, retinterpret_cast는 포인터가 다른 포인터 형식으로 변환될 수 있게 합니다.

또한 포인터를 전혀 관련없는 타입으로 변환할 수 있게 해줍니다.

 

2) reinterpret_cast

사용법을 한번 보겠습니다.

 

 

 

위와 같이 캐스팅이 잘 이루어 지는 것을 확인할 수 있습니다.

그러나 무분별하게 reinterpret_cast를 사용해서는 안됩니다.

 

 

위의 windwos 공식문서에서 언급되어 있듯이,

원래 형식으로 다시 캐스팅되는 것 이외의 다른 용도로는 결과를 안전하게 사용할 수 없습니다.

 

실제 실행 결과가 보여주듯이, 용도에 맞지 않는 reinterpret_cast는 메모리 오염을 초래할 수 있습니다.

 

캐스팅을 사용할 때는 반드시 목적에 맞게 올바르게 사용하는 것이 중요하다고 생각합니다.

다음 포스팅에서는 const_cast로 C++ 캐스팅 4부작의 끝을 내도록 하겠습니다.

728x90
반응형

'C++' 카테고리의 다른 글

얕은 복사 VS 깊은 복사  (0) 2024.04.21
C++의 캐스팅 - const_cast  (0) 2024.04.15
C++의 캐스팅 - dynamic_cast  (0) 2024.04.14
C++의 캐스팅 - static_cast  (0) 2024.04.08
캐스팅 - C언어의 캐스팅  (0) 2024.04.07