| [ 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 |