• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

이중포인터를 안 써도 답이 똑같은 이유가 몰까요

24.03.28 21:33 작성 조회수 49

1

이중 포인터가 아니라 밑에 포인터만 써도 그냥 포인터만 써도 답이 이중 포인터랑 똑같이 나오는 이유는 무엇일까요??

 

void swap(char* xp, char* yp)
{
	char* temp = *xp;
	*xp = *yp;
	*yp = temp;
}

답변 1

답변을 작성해보세요.

1

Soobak님의 프로필

Soobak

2024.03.28

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

 

첨부해주신 코드는 컴파일 에러가 발생합니다.
혹시, 오타가 나신 것은 아니신지, 혹은 컴파일 에러가 발생하여 이전에 성공적으로 수행되었던 빌드가 실행된 것은 아니신지 다시 한 번 확인해주시면 감사하겠습니다.

char* temp = *xp; 부분에서, xpchar* 타입이기 때문에, *xpchar 타입의 값입니다.
하지만, tempchar* 타입의 변수로 선언되어 있으므로, char 타입의 값을 char* 타입의 변수에 할당하려는 타입 불일치 오류가 발생합니다.

따라서, 이어지는 *xp = *yp;*yp = temp; 부분에서도 각 포인터가 가리키는 값을 서로 교환하려고 시도하여도, temp 에 올바른 타입의 값이 저장되지 않았기 때문에 동작하지 않을 것입니다.