반환형을 포인터로 할수없나요?.

질문 제목 : 반환형을 포인터로 할수없나요?.반환형을 포인터로 할수없나요?.질문 내용 :

함수에서 선언한 배열이름이나 변수 주소값을 리턴할려고하는데

반환값을 포인터로 할수없나요?

#include stdio.h
int *fun();
void main()
{
int *p;
p=fun();
}
int* fun()
{
int a[5]={1,2,3,4,5};
return a;
}

이렇게 하니까 경고 하나가 뜨더라구요.

함수가 종료되면서 메모리상에서 사라질꺼같지만
궁금해서 질문드려요.

댓글 2

  • 달 2026.08.13

    ㅠㅠ 해결할수 있는방법을..

  • 민아 2026.08.13

    반환값을 포인터로 할 순 있습니다.
    핵돼수다님 말씀처럼 fun함수의 배열 a는 지역변수 이기때문에
    a의 주소를 반환할 수 있지만 fun이 종료되면서 a는 사라지겠죠

    main에서 배열 a를 잡고 fun(a)로 넘겨주시는 식으로 하시거나
    fun함수에서 a를 static 으로 하시면 될 것 같습니다.

C언어 다른 글

목록