다음을 통해 공유


_aligned_offset_malloc

지정 된 맞춤 경계에 메모리를 할당합니다.

void * _aligned_offset_malloc(
   size_t size, 
   size_t alignment, 
   size_t offset
);

매개 변수

  • [in] size
    요청된 메모리 할당의 크기입니다.

  • [in] alignment
    맞춤 값은 -2의 정수 거듭제곱이어야 합니다.

  • [in] offset
    강제로 정렬을하기 위한 메모리 할당에 대한 오프셋입니다.

반환 값

할당 된 메모리 블록에 대한 포인터 또는 작업에 실패한 경우 NULL 입니다.

설명

_aligned_offset_malloc는 중첩 된 요소에서 정렬이 필요한 경우에 유용합니다. 예를 들어, 중첩 된 클래스에 정렬이 필요한 경우.

malloc 을 기반으로 하는 _aligned_offset_malloc에 대한 자세한 내용은 malloc을 참조하십시오.

_aligned_offset_malloc__declspec(noalias) 및 **__declspec(restrict)**로 표시됩니다. 즉, 함수가 전역 변수를 수정하지 않고 반환된 포인터가 별칭이 지정되지 않도록 보증합니다. 자세한 내용은 noaliasrestrict 를 참조하십시오.

이 함수는 메모리 할당에 실패 한 경우 또는 요청된 된 크기 _HEAP_MAXREQ 보다 큰 경우, errno 를 ENOMEM 로 설정합니다. errno에 대한 자세한 내용은 errno, _doserrno, _sys_errlist 및 _sys_nerr을 참조하십시오. 또한 _aligned_offset_malloc 매개 변수 유효성을 검사 합니다. alignment 2의 거듭제곱이 아닌 경우, offset 이 size 보다 크거나 같은거나 0이 아닌 경우, 이 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우, 이 함수는 NULL 를 반환하고 errno 를 EINVAL로 설정합니다.

요구 사항

루틴

필수 헤더

_aligned_offset_malloc

<malloc.h>

예제

더 자세한 내용은 _malloc_dbg를 참조하십시오.

참고 항목

참조

데이터 맞춤