인프런 커뮤니티 질문&답변

김기환님의 프로필 이미지
김기환

작성한 질문수

홍정모의 따라하며 배우는 C++

7.5 다양한 반환 값들(값, 참조, 주소, 구조체, 튜플)

std::array function parameter data type 질문

작성

·

236

0

배열의 경우 값을 call by value 로 하면 배열 전체를 복사해서 비효율적이잖아요.

std::array 또한 함수 parameter 로

void fun_1(std::array<int, LEN> my_array);

이렇게 넘겨버리게 될경우 parameter 를 built in array 를 사용하는 것처럼 포인터로 넘어가는지 아니면 새로운 my_array 배열을 만들고 그 배열에 복사되는지 궁금합니다!

buit in array 를 parameter 로 할 경우

void fun_2(int *array_ptr);

감사합니다.

답변 2

1

홍정모님의 프로필 이미지
홍정모
지식공유자

좋은 질문입니다. std::array의 복사 생성자가 호출이 되기 때문에 복사를 하게 될겁니다. 뒤에서  클래스와 다양한 생성자 만드는 방법을 배우신 후에 직접 실험해보실 수 있게 됩니다. copy constructor가 아니라 move constructor를 호출하는 방법은 뒤에 나옵니다.

0

김기환님의 프로필 이미지
김기환
질문자

그러면 메모리를 효율적으로 사용하기위해 우선 지금은 참조로 사용하면 되겠네요. 감사합니다. 도움이 많이되었습니다. 

김기환님의 프로필 이미지
김기환

작성한 질문수

질문하기