다차원 배열 선언 시 주의사항

CODEDRAGON Development/C, C++

반응형

   

   

다차원 배열 선언 시 주의사항

  • 열의 길이는 반드시 설정
  • 2차원 배열의 물리적 메모리 구조

   

   

열의 길이는 반드시 설정

int array1[ ][ ]={1, 2, 3, 4, 5, 6, ,7 ,8 ,9, 10, 11, 12}; // 에러(행과 열 모두 설정 안함)

int array2[4][ ]={1, 2, 3, 4, 5, 6, ,7 ,8 ,9, 10, 11, 12}; // 에러(행만 설정)

int array3[ ][2]={1, 2, 3, 4, 5, 6, ,7 ,8 ,9, 10, 11, 12}; // 정상(열만 설정)

int array4[ ][3]={1, 2, 3, 4, 5, 6, ,7 ,8 ,9, 10, 11, 12}; // 정상(열만 설정)

int array5[ ][4]={1, 2, 3, 4, 5, 6, ,7 ,8 ,9, 10, 11, 12}; // 정상(열만 설정)

   

   

2차원 배열의 물리적 메모리 구조

int array[2][3] = {10,20,30,40,50,60};

   

2차원 배열의 메모리 할당 방식은 행과 열의 논리적인 구조로 되어 있지만 실제 물리적 메모리 구조는 아래 그림과 같이 1차원 배열의 형태로 되어 있습니다.

(이해를 위해 논리적 메모리 구조로 이해하는 것이 좋습니다.)

물리적 메모리 구조

논리적 메모리 구조