배열
배열이란?
- 선언한 자료형의 데이터를 여러 개 저장할 수 있도록 고안된 자료구조
기본형
1
(size_t) ArrayName[ Array_Index ]
1
2
(size_t) ArrayName = new Array[ Array_Size ]
// 자바에서의 배열은 배열의 크기를 동적으로 지정할 수 있음
다차원 배열
- 프로그램 안에서 다차원의 배열을 생성 가능
- 가시적으로 그릴 수 있는 경우
- 1차원 배열
- 2차원 배열
- 3차원 배열
- 현실적으로 그리기 어려운 경우
- 다차원 배열
장단점
- 장점
- 여러개의 정형화된 데이터를 저장하는 가장 쉬운 방법
- 삽입, 삭제, 검색이 빠름
- 단점
- 배열의 크기를 변수로 지정할 수 없음 ( 가변적이지 않음 )
- 해결 방안 : 동적할당
- 사용하지 않은 인덱스에서 메모리 낭비 가 발생할 수 있음
- 배열의 크기를 변수로 지정할 수 없음 ( 가변적이지 않음 )
소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
#include <stdlib.h>
#define ARRAY_SIZE 10
int main() {
int mainArraySize = 10;
// declare static Array
// can't use main array size
int array[ARRAY_SIZE];
int twoDimensionArray[ARRAY_SIZE][ARRAY_SIZE];
int threeDimensionArray[ARRAY_SIZE][ARRAY_SIZE][ARRAY_SIZE];
// declare dynamic Array
// can use main array size
int* mallocArray = (int *)malloc(sizeof(int) * mainArraySize);
/*
After some commands...
*/
// must free dynamic Array after use all
free(mallocArray);
mallocArray = NULL;
return 0;
}