
(short1-bal.rep)
[오후 3:24:40] 힙 초기화 완료: 프롤로그(16B), 대형 가용 블록(20,000B), 에필로그(0B)

Q. 현재 상태에서 프롤로그와 에필로그는 왜 내부 단편화가 없을까?
A. 내부 단편화(Internal Fragmentation)의 정의는 "유저가 요청한 페이로드(Payload)보다 할당된 블록 크기가 더 커서 남는 버려진 공간.
버그나 누락이 아니라, 페이로드를 전혀 담지 않는 경계 메타데이터 블록이므로, 내부 단편화(패딩) 계산 대상에서 원천 배제되었기 때문.
a 0 2040
[오후 3:50:20] 블록 분할 발생: [20000B] -> [할당 2064B] + [가용 자투리 17936B]
[오후 3:50:20] malloc(2040) 호출 -> 정렬/헤더 포함 요구 크기: 2064B

a 1 2040
[오후 4:07:24] 블록 분할 발생: [17936B] -> [할당 2064B] + [가용 자투리 15872B]
[오후 4:07:24] malloc(2040) 호출 -> 정렬/헤더 포함 요구 크기: 2064B

f 1
[오후 4:15:36] Case 2: 다음 가용 블록과 병합 -> 새 크기: 17936B
[오후 4:15:36] free(ptr[1]) 호출: 크기 2064B 반납

a 2 48
[오후 4:22:48] 블록 분할 발생: [17936B] -> [할당 64B] + [가용 자투리 17872B]
[오후 4:22:48] malloc(48) 호출 -> 정렬/헤더 포함 요구 크기: 64B

a 3 4072
[오후 7:07:46] 블록 분할 발생: [17872B] -> [할당 4096B] + [가용 자투리 13776B]
[오후 7:07:46] malloc(4072) 호출 -> 정렬/헤더 포함 요구 크기: 4096B

f 3
[오후 7:20:36] Case 2: 다음 가용 블록과 병합 -> 새 크기: 17872B
[오후 7:20:36] free(ptr[3]) 호출: 크기 4096B 반납

a 4 4072
[오후 7:23:30] 블록 분할 발생: [17872B] -> [할당 4096B] + [가용 자투리 13776B]
[오후 7:23:30] malloc(4072) 호출 -> 정렬/헤더 포함 요구 크기: 4096B

f 0
[오후 7:30:29] Case 1: 인접 블록 모두 할당 상태 -> 병합 없음
[오후 7:30:29] free(ptr[0]) 호출: 크기 2064B 반납
f 2
[오후 7:30:57] Case 3: 이전 가용 블록과 병합 -> 새 크기: 2128B
[오후 7:30:57] free(ptr[2]) 호출: 크기 64B 반납

a 5 4072
[오후 7:37:18] 블록 분할 발생: [13776B] -> [할당 4096B] + [가용 자투리 9680B]
[오후 7:37:18] malloc(4072) 호출 -> 정렬/헤더 포함 요구 크기: 4096B
f 4
[오후 7:39:33] Case 3: 이전 가용 블록과 병합 -> 새 크기: 6224B
[오후 7:39:33] free(ptr[4]) 호출: 크기 4096B 반납
f 5
[오후 7:39:59] Case 4: 이전 및 다음 블록 동시 병합 -> 새 크기: 20000B
[오후 7:39:59] free(ptr[5]) 호출: 크기 4096B 반납