다음을 통해 공유


_aligned_recalloc_dbg

할당 _aligned_malloc 된 메모리 블록의 크기를 변경하거나 _aligned_offset_malloc 메모리를 0으로 초기화합니다(디버그 버전에만 해당).

구문

void * _aligned_recalloc_dbg(
   void * memblock,
   size_t num,
   size_t size,
   size_t alignment,
   const char *filename,
   int linenumber
);

매개 변수

memblock
현재 메모리 블록 포인터입니다.

number
요소의 수입니다.

size
각 요소의 크기입니다(바이트).

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

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

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

반환 값

_aligned_recalloc_dbg는 다시 할당된(그리고 이동되었을 수 있는) 메모리 블록에 대한 void 포인터를 반환합니다. 반환 값은 NULL 크기가 0이고 버퍼 인수가 아닌 NULL경우 또는 블록을 지정된 크기로 확장할 수 있는 메모리가 충분하지 않은 경우입니다. 첫 번째 경우 원래 블록이 해제됩니다. 두 번째 경우 원래 블록은 변경되지 않습니다. 반환 값은 모든 유형의 개체의 스토리지에 적합하게 정렬된 스토리지 공간을 가리킵니다. void가 아닌 형식의 포인터를 가져오려면 반환 값에 형식 캐스팅을 사용합니다.

메모리를 다시 할당하고 블록의 맞춤을 변경하는 것은 오류입니다.

설명

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

_aligned_recalloc_dbg는 요청된 크기(number * size)보다 약간 더 많은 공간을 지정된 메모리 블록에 다시 할당합니다. 이때 요청된 크기는 원래 할당된 메모리 블록의 크기보다 더 크거나 작을 수 있습니다. 추가 공간은 디버그 힙 관리자가 디버그 메모리 블록을 연결하고 애플리케이션에 디버그 헤더 정보 및 덮어쓰기 버퍼를 제공하는 데 사용됩니다. 다시 할당은 원래 메모리 블록을 힙의 다른 위치로 이동하고 메모리 블록의 크기를 변경할 수 있습니다. 블록의 사용자 부분은 0xCD 값으로 채워지고 덮어쓰기 버퍼는 0xFD 채워집니다.

메모리 할당에 실패하면 _aligned_recalloc_dbgerrnoENOMEM으로 설정하고 필요한 메모리 양(앞에서 언급한 오버헤드 포함)이 EINVAL를 초과하면 _HEAP_MAXREQ이 반환됩니다. 이 코드 및 기타 오류 코드에 대한 자세한 내용은 , _doserrno, _sys_errlist_sys_nerr를 참조하세요errno.

또한 _aligned_recalloc_dbg는 매개 변수의 유효성을 검사합니다. 2의 전원이 아닌 경우 alignment 이 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용한 경우 이 함수는 NULL을 반환하고 errnoEINVAL로 설정합니다.

기본 힙의 디버그 버전에서 메모리 블록을 할당, 초기화 및 관리하는 방법에 대한 자세한 내용은 CRT 디버그 힙 세부 정보를 참조 하세요. 할당 블록 형식 및 사용 방법에 대한 자세한 내용은 디버그 힙의 블록 유형을 참조 하세요. 표준 힙 함수와 해당 디버그 버전 간의 차이점에 대한 자세한 내용은 힙 할당 함수의 디버그 버전을 참조 하세요.

요구 사항

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

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

라이브러리

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

참고 항목

디버그 루틴