• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

std::array function parameter data type 질문

20.03.28 10:42 작성 조회수 167

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

김기환님의 프로필

김기환

질문자

2020.03.30

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