반환형을 포인터로 할수없나요?.
푸른들
2023.04.01
질문 제목 : 반환형을 포인터로 할수없나요?.반환형을 포인터로 할수없나요?.질문 내용 :
함수에서 선언한 배열이름이나 변수 주소값을 리턴할려고하는데
반환값을 포인터로 할수없나요?
#include stdio.h
int *fun();
void main()
{
int *p;
p=fun();
}
int* fun()
{
int a[5]={1,2,3,4,5};
return a;
}
이렇게 하니까 경고 하나가 뜨더라구요.
함수가 종료되면서 메모리상에서 사라질꺼같지만
궁금해서 질문드려요.
-
매미꽃
ㅠㅠ 해결할수 있는방법을..
-
타마
반환값을 포인터로 할 순 있습니다.
핵돼수다님 말씀처럼 fun함수의 배열 a는 지역변수 이기때문에
a의 주소를 반환할 수 있지만 fun이 종료되면서 a는 사라지겠죠
main에서 배열 a를 잡고 fun(a)로 넘겨주시는 식으로 하시거나
fun함수에서 a를 static 으로 하시면 될 것 같습니다.