| [ CnUnix ] in KIDS 글 쓴 이(By): love (바람) 날 짜 (Date): 1995년06월30일(금) 10시36분52초 KDT 제 목(Title): C에서의 질문 하나. 친구가 물어보더군요. 어떤 함수에서 배열을 return 해서 그 값들을 이용하고자 할 때 어떻게 해야 하느냐고요... 다음의 간단한 예를 먼저 보시는 것이 나을 듯 합니다. int **fun(a) int a[MAX][MAX]; { int b[MAX][MAX]; int i; for(i=0; i<MAX/2; i++) for(j=0; j<MAX/2; j++) b[i][j] = 2 * a[i][j]; return (int **)b; } void main() { int **x; int a[MAX][MAX]; ...... x = fun(a); ...... for(i=0; i<MAX; i++) for(j=0; j<MAX; j++) printf(" %d", x[i][j]); } 위에서 물론 MAX는 #define에 의해 10정도로 정의 되어 있을 것이고 main에 있는 x는 malloc에 의해 memory를 할당받아야 겠죠. 근데 그 size를 잘 모르겠거든요. 그 size를 좀 알려 주시겠읍니까? 그리고 위 프로그램에서 틀린 부분이 있다면 그것도 같이 지적해 주십시오. |