작성한 질문수
홍정모의 따라하며 배우는 C언어
9.18 포인터형 매개변수
작성
·
193
1
32 비트 환경에서는 결과가 무사히 잘 나오지만, x64로만 가면 다음과 같은 작은 창이 뜨면서 런타임 에러가 납니다.
답변 1
안녕하세요, 질문&답변 도우미 Soobak 입니다.
첨부해주신 이미지를 자세히 보니, swap() 함수의 선언은 swap(int, int) 로 이루어진 반면,정의는 swap(int*, int*) 으로 되어 있습니다.
swap()
swap(int, int)
swap(int*, int*)
따라서, 메모리 주소가 보통 4 바이트를 차지하는 32비트 시스템에서 우연히 int 의 자료형 크기와 일치하여 정상적으로 swap() 함수가 동작하는 반면, 메모리 주소가 보통 8 바이트를 차지하는 64비트 시스템에서는 잘못 작동하는 것으로 보입니다.
4
int
8