CODEDRAGON ㆍDevelopment/C, C++
동적 메모리 할당이 필요한 이유
· 선언된 배열 요소의 수가 사용된 요소 수 보다 많은 경우 (메모리 낭비)
· 선언된 배열 요소의 수가 사용된 요소의 수보다 적은 경우 (메모리 부족)
· 배열 선언 시 배열 길이에 변수를 설정한 경우 에러 발생
선언된 배열 요소의 수가 사용된 요소 수 보다 많은 경우 (메모리 낭비)
컴파일 타임에 미리 지정시 메모리 낭비 발생
int array[5]; // 선언된 배열 요소 수: 5개(20byte) array[0]=10, array[1]=20, array[2]=30; // 사용된 배열 요소 수: 3개(12byte) |
선언된 배열 요소의 수가 사용된 요소의 수보다 적은 경우 (메모리 부족)
컴파일 타임에 미리 확정시 메모리 부족 발생
int array[2]; // 선언된 배열 요소 수: 2개(8byte) array[0]=10, array[1]=20, array[2]=30; // 사용된 배열 요소 수: 3개(12byte) |
배열 선언 시 배열 길이에 변수를 설정한 경우 에러 발생
프로그래머가 필요한 메모리 크기를 예측할 수 없습니다. 따라서 동적 메모리 할당이 필요하게 됩니다.
int a=5; int array[a] // 배열 선언 시 배열 a를 배열 길이로 사용 void init(int a){ int array[a]; // 배열 선언 시 함수의 인자(지역 변수) a를 배열 길이로 사용 } |
'Development > C, C++' 카테고리의 다른 글
realloc( ) 함수와 free( ) 함수 (0) | 2018.05.11 |
---|---|
동적 메모리 할당 함수와 해제 함수 (0) | 2018.05.11 |
정적 메모리 할당, 정적 메모리 할당의 한계 (0) | 2018.05.11 |
C++(VC ; C plusplus) (0) | 2018.05.10 |
이름 공간(NameSpace), 네임스페이스 형식 (0) | 2018.05.10 |