배열 int array[10][200]를 행우선순서(row major … | [국회직 9급 컴퓨터일반] 18년 1회차 기출문제 상세 페이지
1[국회직 9급 컴퓨터일반] 18년 1회차
배열 int array[10][200]를 행우선순서(row major order)로 저장하는 경우의 원소 array[7][12]의 시작주소는 몇 번지인가?
(단, 배열 array의 시작주소는 10840h로, int의 크기는 4바이트로 가정한다. 배열 첨자는 0부터 시작하며 숫자에 붙은 h는 16진수 표기를 의미한다.)
1
10804h
2
11E50h
3
16488h
4
108BFh
5
10A3Ch
해설
원소 array[7][12]의 시작주소는 11E50h이다.
행우선에서는 앞선 7개 행과 현재 행의 12개 원소를 건너뛴다.
공식: 시작주소 + (행 × 열 크기 + 열) × 원소 크기
오프셋:
16진수 변환: 5648 = 1610h
주소: 10840h + 1610h = 11E50h
- 16488h: 10840에 5648을 십진수로 더한 값으로, 16진수 변환을 빠뜨린 결과이다.
- 10804h: 배열 시작주소 10840h보다 작아 배열 안의 주소가 될 수 없다.
- 108BFh: 끝자리가 홀수로, 4바이트 원소의 시작주소 간격에 맞지 않는다.
- 10A3Ch: 열우선으로 계산한 값 을 더한 결과로, 행우선 조건에 맞지 않는다.
오류나 개정된 내용이 보이면 알려주세요