CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): freezer (급속냉동)
날 짜 (Date): 1995년06월30일(금) 11시20분23초 KDT
제 목(Title): [A]C에서의 질문 하나.



>   int **fun(a)
>   int a[MAX][MAX];
>   {
>       int b[MAX][MAX];
>
>       int i;
>
먼저 여기서 배열을 쓴건 잘묫입니다. 배열로 정의하면 그 루틴이 끝난후
기억공간이 자동 소멸되기때문에 향후 당연히 문제가 생깁니다.
따라서 이럴땐 포인터를 써야하겠지요.
       int **b;
       b=(int **)malloc(sizeof(int *)*MAX);
       for(i=0;i<MAX;i++) b[i]=(int *)malloc(sizeof(int)*MAX);
뭐 이정도 하면 되겠죠.
그리고 이렇게 해놓으면 나중에 main() 에서 따로 malloc() 을 쓸 필요가 없겠구요.

>
>       for(i=0; i<MAX; i++)
>           for(j=0; j<MAX; j++)
>               b[i][j] = 2 * a[MAX][MAX];
>
>       return (int **)b;
>>   }


하지만 이런 방법보다는 제 생각에는 일차원배열로 넘겨받는게 더 편할꺼란
생각이 드는군요.
~
          #         ###   ! Han Kyeong-Hee
    ###  # #   ###  #  #  ! Dept. of Mechanical Engineering
   #    #   # # # # ###   ! KAIST,  (tel) +82-42-869-3267
    ### #   # # # # #     ! khhan in ara, freezer@tg401.kaist.ac.kr
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.