_aligned_offset_malloc_dbg

지정된 맞춤 경계에 메모리를 할당합니다(디버그 버전에만 해당).

구문

void * _aligned_offset_malloc_dbg(
   size_t size,
   size_t alignment,
   size_t offset,
   const char *filename,
   int linenumber
);

매개 변수

size
요청된 메모리 할당 크기입니다.

alignment
맞춤 값으로 2의 정수 거듭제곱이어야 합니다.

offset
맞춤을 강제하는 메모리 할당으로의 오프셋입니다.

filename
할당 작업 또는 NULL을 요청한 소스 파일의 이름에 대한 포인터입니다.

linenumber
할당 작업이 요청되었거나 NULL인 소스 파일의 줄 번호입니다.

반환 값

할당된 메모리 블록에 대한 포인터로 작업 실패 시 NULL입니다.

설명

_aligned_offset_malloc_dbg 는 함수의 디버그 버전입니다 _aligned_offset_malloc . 정의되지 않은 경우 _DEBUG 각 호출 _aligned_offset_malloc_dbg 이 호출로 _aligned_offset_malloc줄어듭니다. _aligned_offset_malloc_aligned_offset_malloc_dbg 둘 다 기본 힙에서 메모리 블록을 할당하지만 _aligned_offset_malloc_dbg는 여러 디버깅 특징, 즉 누수를 테스트하기 위한 블록의 사용자 부분 양쪽에서의 버퍼 및 할당 요청의 원점을 확인하기 위한 filename/linenumber 정보를 제공합니다. 블록 형식 매개 변수를 사용하여 특정 할당 유형을 추적하는 것은 정렬된 할당에 대해 지원되는 디버그 기능이 아닙니다. 정렬된 할당은 블록 형식으로 _NORMAL_BLOCK 표시됩니다.

_aligned_offset_malloc_dbg는 요청된 size보다 약간 큰 공간의 메모리 블록을 할당합니다. 추가 공간은 디버그 힙 관리자가 디버그 메모리 블록을 연결하고 애플리케이션에 디버그 헤더 정보 및 덮어쓰기 버퍼를 제공하는 데 사용됩니다. 블록이 할당되면 블록의 사용자 부분은 0xCD 값으로 채워지고 각 덮어쓰기 버퍼는 0xFD 채워집니다.

_aligned_offset_malloc_dbg는 중첩된 요소에 맞춤이 필요한 상황에서 유용합니다(예: 중첩된 클래스에 맞춤이 필요한 경우).

_aligned_offset_malloc_dbg 은 ;를 기반으로 malloc하며, 자세한 내용은 다음을 참조하세요 malloc.

이 함수는 메모리 할당에 실패한 경우 또는 요청된 크기가 errno보다 큰 경우 ENOMEM_HEAP_MAXREQ으로 설정합니다. 에 대한 errno자세한 내용은 , , _doserrno_sys_errlist_sys_nerr 를 참조하세요errno. 또한 _aligned_offset_malloc는 매개 변수의 유효성을 검사합니다. 2의 힘이 아니거나 0이 아니고 0보다 크거나 같은 size경우 offsetalignment 이 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용한 경우 이 함수는 NULL을 반환하고 errnoEINVAL로 설정합니다.

기본 힙의 디버그 버전에서 메모리 블록을 할당, 초기화 및 관리하는 방법에 대한 자세한 내용은 CRT 디버그 힙 세부 정보를 참조 하세요.

할당 블록 형식 및 사용 방법에 대한 자세한 내용은 디버그 힙의 블록 유형을 참조 하세요.

요구 사항

루틴에서 반환된 값 필수 헤더
_aligned_offset_malloc_dbg <crtdbg.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

라이브러리

C 런타임 라이브러리의 디버그 버전만 해당됩니다.

참고 항목

디버그 루틴