로딩
요청 처리 중입니다...

[C/C++]매개변수에 배열을 넘기면 그게 진짜 배열일까?(feat.포인터,sizeof,다시 한번 스택)

 [C/C++]매개변수에 배열을 넘기면 그게 진짜 배열일까?(feat.포인터,sizeof,다시 한번 스택)

C/C++로 짜여진 여러 코드를 보다보면 함수의 매개변수에 배열을 넣는 코드들을 볼 수 있을 것이다. 예를 들면, #include // 정수형 배열을 인자로 받는 함수 void print_array(int arr[], int size) { for (int i = 0; i < size; i++) { printf("%d ", arr[i]); } printf("\n"); } int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); // 배열 크기 계산 print_array(arr, size); // 배열 전달 return 0; } 해당 코드는 정수형 배열을 넘겨서 배열의 요소를 출력하는 정말 간단한 코드다.

물론 배열을 함수에 전달 시 배열의 크기를 미리 계산해서 같이 넘겨준다. (배열을 함수에 전달시 배열의 크기를 미리 계산하는 이유는 나중에 나온다.)

그런데 저번 스택 프레임에...

# 19학번 # 삼육대 # 색인 # 스택 # 씨플플 # 인덱스 # 컴공 # 포인터 # 포큐아카데미 # 배열 # 메모리 # array # c # cpp # pointer # sizeof # stack # 권택준 # 매개변수 # 함수