두개의 int형 포인터에 저장된 값을 교환하는 함수를 알고싶습니다. ㅠ.ㅠ
모두다
두개의 int형 포인터에 저장된 값을 교환하는 함수를 다음의 형태로 정의하자
void SwapPtr(int **ptr1, int **ptr2);
그리고 정의가 되었다면 다음 main함수와 더불어 실행하여, 이어시는 실행의 예와 동일한 결과를 보여야한다.
int main(void)
{
int num1 = 10;
int num2 = 20;
int * ptr1 = &num1;
int * ptr2 = &num2;
printf(Befote: ptr1-%d, ptr2-%d\n, *ptr1,*ptr2);
SwapPtr(&ptr1,&ptr2);
printf(After: ptr1-%d, ptr2-%d\n, *ptr1,*ptr2);
retun 0 ;
}
실행의 예
Before: ptr1-10, ptr2-20
After: ptr1-20, ptr2-:10
기존에 포인터 하나에서는 교환하는함수 알겠는데 이중포인터 사용하니까 잘모르겠어요 ㅠ.ㅠ
입니다 고수님들 도와주세요~ ㅠ.ㅠ
-
콘라드
아항~!!! 되네요 ㅎㅎ 감사합니다. ^^
정말간단한건데 왜 이중으로가면어렵지 ㅠ.ㅠ -
뿡뿡몬
이중포인터는 포인터의 주소를 가지고 있는것은 아시죠?
위 코드에서 이중포인터가 num1, num2 를 바꾸려면 ** 를 두개쓰시면됩니다.
void SwapPtr(int **ptr1, int **ptr2)
{
int temp = **ptr1;
**ptr1 = **ptr2;
**ptr2 = temp;
}