메모리관리

Download Report

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!!
*