포인터를 안쓰고 함수 인자로 배열을 넘길 수 있을까요?

발생하는 문제 및 실행환경

int a[5][5];
int* a[5];
int** a;

배열을 인자로 받을 때는 저 3개중 하나를 골라서 통일시켜 줘야 되는데 포인터를 안 쓰고 배열을 넘길 수 있는 방법 없을까요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    배열 자체로 넘길 수는 없고 멤버가 배열로만 돼 있는 구조체를 쓰면 할 수 있습니다.

    
    typedef struct {
        unsigned long array[MAX];
    }ABC;
    
    ABC foo(ABC myinput){
        myinput.array[0] = 1;
    
        //...
        return myinput;
    }
    

    이렇게 하면 구조체를 address가 아닌 value로 넘길 수 있고, 함수에서 value로 return받을 수 있습니다

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.