Transcript 메모리관리
* 메모리 관리 & 동적 할당 * index 1. 정적(Static)과 동적(Dynamic) 2. 동적 메모리 할당의 장,단점 3. malloc()와 free() 4. malloc()과 calloc()의 차이 5. realloc() 정적(Static)와 동적(Dynamic) 정적(Static)와 동적(Dynamic) 정적(Static) 메모리 할당이란? - 프로그램이 시작되기 전에 미리 정해진 크기의 메모리를 할당하는 방법 동적(Dynamic) 메모리 할당이란? - 프로그램이 실행 실행 도중에 동적으로 메모리를 할당하는 방법 동적 메모리 할당의 장, 단점 동적 메모리 할당의 장, 단점 장점 - 프로그램에서 제한된 자원(Memory)에 대한 효율적인 이용이 가능 단점 - 동적 메모리 할당은 실행될 때 마다 메모리에 할당하는 방식으로 약간의 시간지체가 발생 - 구현이 복잡함 malloc()와 free() malloc() 와 free() 예제 Source 결과 값 malloc() 와 free() • 동적 할당 메모리는 힙(heap) 영역에 할당됨 • 힙(heap)영역은 프로그램이 종료 될때까지 공간이 유지됨 • 사용이 끝난 동적 할당 메모리는 명시적으로 반납이 필요함 • 메모리를 반납하기 위해서는 free()함수를 사용 malloc() 와 free() 예제 Source 결과 값 malloc()과 calloc()의 차이 malloc()과 calloc()의 차이 • calloc()도 동적 메모리를 할당하나 malloc()와 달리 할당된 메모리를 초기화 함 • calloc()을 사용하면 초기화 시간이 발생하고 초기화해야 할 메모리 영역이 크면 다른 함수로의 전환이 필요함. malloc()과 calloc()의 차이 예제 Source 결과 값 realloc() realloc() • 저장된 데이터에 변화가 생기면 할당 받은 기억공간을 realloc() 함수를 사용하여 재조정 할 수 있음 realloc() 예제 Source 결과 값 Thank you!! *