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가 구현이 지원하지 않는 정렬이거나 유효하지 않으면 실패할 수 있어요. size는 alignment의 배수여야 하는 플랫폼도 있어요.