처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.07.23 50

malloc에 100바이트 요청했는데 왜 더 줄까?

Hacker News 원문 보기

C에서 malloc(100)을 호출하면 실제로는 요청한 것보다 많은 메모리가 잡힙니다. 이유는 세 가지입니다. 첫째, 정렬(alignment). 64비트 시스템에서 할당자는 보통 16바이트 단위로 주소를 맞춰야 하므로 요청 크기를 배수로 올림합니다. 둘째, 청크 헤더 메타데이터. glibc의 malloc은 각 블록 앞뒤에 크기와 상태 플래그를 담는 헤더를 붙여 free() 시 이 정보로 병합·재사용을 관리합니다. 셋째, 크기 클래스(size class)와 최소 청크 크기. 할당자는 임의의 바이트 대신 미리 정해진 구간(bin) 단위로 묶어 관리해 단편화를 줄이고 속도를 높입니다. 그래서 malloc_usable_size()로 확인하면 요청보다 큰 값이 돌아옵니다. 핵심 인사이트는, 이 '낭비'가 버그가 아니라 정렬·재사용·성능을 위한 의도된 설계라는 점입니다. 작은 객체를 대량 할당하는 코드라면 이 오버헤드가 실제 메모리 사용량에 크게 영향을 주므로, 구조체 크기를 정렬 경계에 맞추거나 풀(pool) 할당을 쓰면 효율을 끌어올릴 수 있습니다.

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.