
[CSAPP 3장 완전 정복] 3.8.5 동적 배열(VLA), 주소 계산은 어떻게 달라질까?
·
크래프톤 정글/컴퓨터구조(CSAPP)
동적 배열(VLA), 주소 계산은 어떻게 달라질까?이전 포스트에서는 배열의 크기가 고정되어 있는 경우를 다뤘다면, 이번에는 크기가 런타임에 결정되는 동적 배열(Variable-Length Array)을 어셈블리어에서 어떻게 접근하는지 알아보겠습니다. 동적 배열은 C99부터 지원되는 기능으로, 배열의 크기를 컴파일 타임이 아니라 실행 중에 결정할 수 있습니다. 예제 코드: 동적 2차원 배열void set_val(int n, int A[n][n], int i, int j, int val) { A[i][j] = val;}여기서 배열 A는 크기가 n x n으로, 호출 시점에 그 크기가 결정됩니다. 그렇다면 A[i][j]는 메모리에서 어떤 위치를 의미할까요?주소 = A + (i * n + j) * 4이 계..