동적메모리할당 2

[CSAPP] 9장 가상 메모리(Virtual Memory) - 9.9(9.9.1 ~ 9.9.5)

동적 메모리 할당은 C 프로그램이 실행 중에 힙(heap) 영역에서 메모리 블록을 확보·반환하는 기법입니다.힙은 초기화되지 않은 데이터 세그먼트(.bss) 바로 뒤에서 시작해, 커널이 brk/sbrk 호출로 demand-zero 페이지를 위로 확장하는 영역입니다.할당자는 힙을 크기가 다양한 블록들의 집합으로 유지하며, 각 블록은 할당됨(allocated) 또는 비어 있음(free) 상태로 표시됩니다.이때 메모리를 직접 malloc/free로 관리하는 방식을 명시적 할당자(explicit allocator), 가비지 콜렉터가 자동으로 해제하는 방식을 암시적 할당자(implicit allocator)라고 한다​구분명시적(explicit) 할당자암시적(implicit) 할당자관리 주체프로그래머가 직접 mall..

CSAPP/9장 2025.04.25

[C 언어] 동적 메모리 할당(malloc, calloc, realloc)를 모르는 당신! 정~~~말 불쌍해!

C 언어에서 동적 메모리 할당은 프로그램 실행 중에 필요한 만큼의 메모리를 할당받아 사용하는 중요한 기능입니다. 동적 메모리 할당을 통해 배열과 같은 데이터 구조의 크기를 실행 시간에 결정할 수 있으며, 메모리의 효율적인 사용이 가능해집니다. 이때 할당되는 메모리는 Heap 영역에 위치하며, 대표적으로 사용하는 함수는 malloc, calloc, realloc입니다.1. 메모리 구조와 Heap 영역C 프로그램은 일반적으로 다음과 같은 메모리 영역으로 구성됨코드 영역(Code Segment): 실행할 명령어들이 저장됨데이터 영역(Data Segment): 전역 변수 및 static 변수 등이 저장됨BSS 영역: 초기화되지 않은 전역 변수 및 static 변수들이 저장됨Stack 영역: 함수 호출 시 생성되..