작성
·
83
0
int sum=sumArr(arr. SIZE) 에서 arr는 배열의 이름이니 pointer 여서 마찬가지로 main에서도 size는 4가 아닌가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
유저님의 질문에 대해 정보가 제공되지 않아 직접적인 답변을 드리기 어려운 점 양해 부탁드립니다. 프로그래밍 언어, 특히 C++ 학습과 관련하여 ‘int sum=sumArr(arr, SIZE)‘에서 arr이 배열의 이름으로 포인터로 취급되어 크기를 얻을 때의 문제를 언급하신 것 같습니다. 일반적으로 배열을 함수에 인자로 넘긴 경우, 배열의 이름은 배열의 첫 번째 요소를 가리키는 포인터로 취급됩니다. 그러나, 배열의 전체 크기를 알기 위해서는 별도로 배열의 크기를 뜻하는 변수를 함께 넘겨야 합니다.
예를 들어, int sumArr(int arr[], int size)
와 같이 함수를 정의할 때, size
인자로 배열의 크기를 명시적으로 넘겨주어야 합니다. 이때, main
함수 내에서 배열의 크기는 sizeof(arr) / sizeof(arr[0])
로 계산해야 할 때와 함수 내에서는 sizeof
를 이용해 배열의 전체 크기를 직접 알 수 없기 때문에, 배열의 크기를 인자로 받는 것이 일반적인 해결 방법입니다.
더 구체적인 도움이 필요하시다면, 해당 강의의 ‘수강 전 문의 게시판’을 활용하시거나 질문하고자 하는 강의 페이지의 Q&A 섹션을 이용해 보시는 것을 권장드립니다.
감사합니다.