두 포인터의 "주소"를 바꾸는 방법은 없을까요?
조회수 698회
두 포인터가 가리키는 '값'을 바꾸는 방법은 조금만 검색해도 나오는데... 두 포인터가 가리킬때 사용하는 '주소'를 바꾸는 방법은 아무리 해도 안나오네요... 혼자 해보려고 해도 자꾸 오류가 나거나 컴파일이 되어도 결과가 이상하고...ㅠㅠ 예를 들면 값을 바꿀때는
void swap(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
이런식으로 하면 되는데, 주소를 바꾸려고 하면 a = b; 이 부분에서 "주소에는 주소를 대입할 수 없다" 라는 오류만 주구장창 뜨네요. 어떻게 해야 주소를 서로 바꿔줄 수 있을까요? 제발 부탁드립니다.
2 답변
-
-
포인터 변수a와 포인터 변수b를 초기화한(실제 주소값을 할당) 후에 해보세요.
예를 들면
int main(void) { int *a, *b; int c = 1; int d = 2; a = &c; b = &d; a = b; printf("%d", *a); }
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력