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

상인김님의 프로필 이미지
상인김

작성한 질문수

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

9.18 포인터형 매개변수

x64 환경에서는 에러가 뜹니다

작성

·

186

1

스크린샷3.png32 비트 환경에서는 결과가 무사히 잘 나오지만, x64로만 가면 다음과 같은 작은 창이 뜨면서 런타임 에러가 납니다.

답변 1

1

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

 

첨부해주신 이미지를 자세히 보니, swap() 함수의 선언은 swap(int, int) 로 이루어진 반면,
정의는 swap(int*, int*) 으로 되어 있습니다.

따라서, 메모리 주소가 보통 4 바이트를 차지하는 32비트 시스템에서 우연히 int 의 자료형 크기와 일치하여 정상적으로 swap() 함수가 동작하는 반면, 메모리 주소가 보통 8 바이트를 차지하는 64비트 시스템에서는 잘못 작동하는 것으로 보입니다.

상인김님의 프로필 이미지
상인김

작성한 질문수

질문하기