logo

C언어(이론) - 동적메모리 할당

* 관련 기술 스택이 없습니다
emoji

• 동적 메모리 할당은 프로그램 실행 중 필요한 만큼 메모리를 할당하고 사용이 끝난 메모리를 해제하여 효율적으로 메모리를 관리하는 과정이다. 이를 위해 malloc, free, sbrk 등의 함수를 사용하며, 명시적 메모리 할당과 묵시적 메모리 할당 방식이 있다.
• 할당기는 힙 영역을 다양한 크기의 블록들로 관리하며, 할당된 블록은 프로그램에 의해 명시적으로 반환될 때까지 할당된 상태로 남아 있다. 할당기의 목표는 처리량 극대화와 메모리 이용도 최대화이다.
• `sbrk` 함수는 힙의 크기를 조절하며, 성공 시 이전의 brk 값을 반환하고 실패 시 -1을 반환한다. `free` 함수는 할당된 힙 블록을 반환하지만, 반환 후에도 포인터는 여전히 해당 블록을 가리킨다.
• 동적 할당기는 가용 블록의 정보를 추적하기 위해 묵시적 가용 리스트와 명시적 가용 리스트를 사용한다. 묵시적 가용 리스트는 블록의 헤더에 정보를 저장하고, 명시적 가용 리스트는 포인터를 사용해 가용 블록들을 연결한다.

thumbnail
북마크
공유하기
신고하기
12분 분량
조회수 122
profile-image김도연-11
일 년 전
Copyright © 2025. Codenary All Rights Reserved.