• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

형변환 관련 질문 있습니다

21.11.24 21:25 작성 조회수 105

0

void* 에서 형변환을 하는 것을 보고

 

포인터에서 정수나 실수 등으로 형변환

또는

정수나 실수 등에서 포인터로 형변환 하면 어떻게 될까 싶어서 해봤더니

 

invaild type conversion 이라고 하면서 오류가 뜹니다

 

왜 그런건가요?

 

아래는 형변환을 시도해 본 코드입니다

        int value = 3;
	int* ptr = &value;

	static_cast<int>(ptr);

	void* ptrr = &value;
	static_cast<int>(ptrr);

	static_cast<int*>(value);

	static_cast<void*>(value);

 

답변 1

답변을 작성해보세요.

1

안소님의 프로필

안소

2021.11.25

static_cast 은 좀 더 엄격하고 논리적으로 변경이 가능한 경우에만 형변환 해줍니다. 

포인터를 정수로 변환한다던가 하는 경우엔 invaild type conversion 를 뱉으면서 안해줍니다. 

 

https://stackoverflow.com/questions/2473628/c-cant-static-cast-from-double-to-int