[C/C++] 인자로 넘겨받은 배열로는 배열의 크기를 구할 수 없다.
다음과 같이 배열이 주어지면 배열의 크기와 원소의 크기를 통해 배열의 길이를 알 수 있다. void main() { int arr[] = {1,2,3,4,5,6}; size_t arr_size = sizeof(arr)/sizeof(int); // 6 } 그런데 다음과 같이 함수의 인자로 배열을 넘겨받아서 위와 같이 계산하면 구할 수 없다. void Foo(int arr[]) { size_t arr_size = sizeof(arr)/sizeof(int); // 1 } void main() { int arr[] = {1,2,3,4,5,6}; Foo(arr); } 그 이유는 인자로 arr을 받을 때 배열이 아닌 포인터로 받기 때문이다. 즉 배열의 이름(주소)을 받는다. 그래서 분자가 배열의 크기가 아닌 포인터..
2020. 8. 2.