c_aligned_alloc — std::aligned_alloc

c_aligned_alloc — std::aligned_alloc

std::aligned_alloc는 지정된 정렬 조건을 만족하면서 크기만큼의 메모리를 할당하는 C 언어 스타일 함수예요. C++17에서 도입됐어요.

정렬이 중요한 데이터(SIMD, 캐시 라인 정렬 등)를 할당할 때 사용해요. 정렬된 메모리는 특정 하드웨어 연산에서 더 효율적일 수 있어요.

출처: cppreference

본문

std::aligned_alloc는 지정된 정렬로 메모리를 할당해요.

void* aligned_alloc(std::size_t alignment, std::size_t size);
  • alignment — 원하는 정렬 (유효한 정렬이어야 해요)
  • size — 할당할 바이트 수

alignment에 정렬되고 크기 size 바이트인 저장 공간을 할당해요. 모든 할당 함수와 마찬가지로, 할당된 메모리는 std::free로 해제해야 해요.

alignment가 구현이 지원하지 않는 정렬이거나 유효하지 않으면 실패할 수 있어요. sizealignment의 배수여야 하는 플랫폼도 있어요.

더 알아보기 (Learn more)

cppreference