프로그래밍

 3198, 1/160 회원가입  로그인  
   hook3748
   [C언어] 이중 포인터 질문입니다

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3099 [복사]


최대최소값 저장하는 문젠데요.ㅜ

컴파일은 되는데 값이 안나와요.엉엉 어디가 잘못일까요..

#include <Turboc.h>

void MaxAndMin(int **dp1, int **dp2, int *dp3, int len)
{
        int i;
        **dp1=**dp2=dp3[0];
        
        for(i=1;i<len;i++)
        {
                if(**dp1<dp3[i])
                        **dp1=dp3[i];
        }
        
        for(i=1;i<len;i++)
        {
                if(**dp1>dp3[i])
                        **dp1=dp3[i];
        }
}

void main()
{
        int *maxPtr;
        int *minPtr;
        int arr[5]={1,2,7,5,9};

        MaxAndMin(&maxPtr,&minPtr,arr, sizeof(arr)/sizeof(arr[0]));

        printf("%d %d",*maxPtr, *minPtr);
}

  Hit : 4237     Date : 2011/07/23 12:32



    
endosymbiosis 1.
int* maxPtr;
int* *minPtr;

함수에 주소값을 넘기려는데, int형 포인터가 가리키는 주소는 무엇일까요?

int *maxPtr=&arr[0]; 또는 int *maxPtr=arr;

2. dp1에는 max 값을 가리키도록 dp2에는 min 값을 가리키도록 하려는데, for문 2개에서 똑같이 dp1에 값을 넣고 있군요.

3. 포인터에 익숙해지려면 우선 머리보다 손을 쓰는 것을 추천합니다. 직접 그려서 이해해보세요

자기자신을 맹신하는 것만큼 바보스런 행동은 없다. 왜냐하면 실수를 반복할 것이기 때문이다.
- Reo Madrid
2011/07/24  
hook3748 감사합니다..ㅠㅠ 2011/07/26