포인터+배열 관련 질문입니다.
연블랙
질문 제목 : 포인터+배열 관련 질문입니다. 질문 요약 :배열을 함수에서 쓴 후, main함수로 결과배열을 가져왔을때 그 배열을 출력하는법을 모르겠습니다.
질문 내용 :
포인터를 바로 어제 공부하고 예제문제를 풀어봤는데요, 배열을 함수로 호출시켜 이용하다가 결과 배열을 main에 가져오는게 문제였습니다.
정확한 문제는 원소 갯수가 10개인 배열 2개를 인자로 받아 각 원소별 큰 값으로 된 배열을 리턴하는 함수 만들기 입니다
제가 만든건
#includestdio.h
int retu(int *a,int *b)
void main(){
int a[10]={0};
int b[10]={0};
int result[10]={0};
int i=0;
printf(a배열은);
for(i=0; i10; i++)
scanf(%d,&a[i]);
printf(b배열은);
for(i=0; i10; i++)
scanf(%d,&b[i]);
retu(a,b);
for(i=0; i10; i++){
printf(%d ,retu(a,b));
}
}
int retu(int *a,int *b){
int re[10]={0};
int i=0;
for(i=0; i10; i++){
if(a[i]b[i])
re[i]=a[i];
else
re[i]=b[i];
}
return *re;
}
까지 인데요
여기서 질문할 부분은 함수에서 re라는 배열을 main으로 가져온 후, 그 배열을 printf를 어떻게 해야하는지 입니다.
그냥 for문을 써서 10번 돌리니까 같은 수만 열개가 나오더라구요..
배열 자체를 출력하려면 어떻게 해야되나요??
-
스릉흔다
함수 내에서 정의된 자동변수는 리턴하면서 소멸됩니다.
배열 re도 마찬가지 입니다.
흔히 쓰는 방법은 re를 호출하는 곳에서 정의하여 함수의 인자로 전달하는 것입니다.
그 외 re를 static 으로 정의하는 것입니다.