글
이번에는, 2 차원 배열의 행 개수와 열 개수를 구하는 예제를 보여드리겠습니다.
#include <stdio.h> #define ROW_SIZE 3 #define COL_SIZE 2 int main(int argc, char* argv[]) { int arr[ROW_SIZE][COL_SIZE]; int totalSize = sizeof(arr); int rowSize = sizeof(arr[0]); int elementSize = sizeof(arr[0][0]); int rowCount = totalSize / rowSize; int colCount = rowSize / elementSize; printf("배열 행의 개수 : %d\n", rowCount); printf("배열 열의 개수 : %d\n", colCount); return 0; }
3 라인
2 차원 배열의 행 개수를 상수화합니다.
4 라인
2 차원 배열의 열 개수를 상수화합니다.
7 라인
2 차원 배열을 선언합니다. (여기서는 편의상 정수형 배열을 선언하겠습니다.)
8 라인
sizeof(arr) 문장을 통해서 arr 배열의 전체 크기를 byte 로 구해서 totalSize 변수에 대입합니다. arr 배열의 전체 크기는 int 형 (4 byte) 가 총 ROW_SIZE (3) X COL_SIZE (2) 개이므로 (4 X 3 X 2) 24 byte 가 됩니다.
9 라인
sizeof(arr[0]) 문장을 통해서 arr 배열의 0 번째 요소의 크기를 byte 로 구해서 rowSize 변수에 대입합니다. 2 차원 배열에서의 arr[0] 은 0 행을 뜻하므로 0 행의 크기는 int 형이 2 개 있는 1 차원 배열이므로 4 X 2 = 8 byte 가 됩니다.
10 라인
sizeof(arr[0][0]) 문장을 통해서 arr[0][0] 요소의 크기를 byte 로 구해서 elementSize 변수에 대입합니다. 이 요소의 크기는 int 형이므로 4 byte 가 됩니다.
11 라인
totalSize (24) / rowSize (8) 의 결과를 rowCount 변수에 대입합니다. (24 / 8 = 3) 이것이 2 차원 배열의 행 개수가 됩니다.
12 라인
rowSize (8) / elementSize (4) 의 결과를 colCount 변수에 대입합니다. (8 / 4 = 2) 이것이 2 차원 배열의 열 개수가 됩니다.
13 ~ 14 라인
구한 2 차원 배열의 행 개수와 열 개수를 출력합니다.
[실행 결과]
'1.1) 실습' 카테고리의 다른 글
1 차원 배열 요소의 개수 구하기 (0) | 2017.05.22 |
---|---|
2 차원 배열을 함수에서 반환하기 (6) | 2015.08.02 |
2 차원 배열을 함수의 인자로 전달하기 (0) | 2015.08.02 |
정수 배열에서 중복 값 (요소) 제거하기 (2) - O(nlogn) (0) | 2015.06.08 |
정수 배열에서 중복 값 (요소) 제거하기 (1) - O(n2) (5) | 2015.06.08 |
1 초에 한 번씩 데이터 출력하기 (0) | 2015.06.08 |
프로그램 강제로 종료시키기 (0) | 2015.06.08 |
콘솔 화면 지우기 (6) | 2015.06.08 |
소리 및 음악 재생하기 (1) - WinApi (4) | 2015.05.25 |
의사 난수 (랜덤 숫자) 생성하기 (0) | 2015.05.17 |
RECENT COMMENT