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