다음을 통해 공유


_CrtIsMemoryBlock

지정된 메모리 블록이 로컬 힙 내에 있고 유효한 디버그 힙 블록 형식 식별자를 포함하는지 확인합니다(디버그 버전에만 해당).

구문

int _CrtIsMemoryBlock(
   const void *userData,
   unsigned int size,
   long *requestNumber,
   char **filename,
   int *lineNumber
);

매개 변수

userData
확인할 메모리 블록의 시작 부분에 대한 포인터입니다.

size
지정된 블록의 크기(바이트)입니다.

requestNumber
블록의 할당 번호 또는 NULL에 대한 포인터입니다.

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

lineNumber
소스 파일의 줄 번호 또는 NULL에 대한 포인터입니다.

반환 값

지정된 메모리 블록이 로컬 힙 내에 있고 유효한 디버그 힙 블록 형식 식별자를 포함하는 경우 _CrtIsMemoryBlockTRUE를 반환하며, 그렇지 않으면 FALSE를 반환합니다.

설명

_CrtIsMemoryBlock 함수는 지정된 메모리 블록이 애플리케이션의 로컬 힙 내에 있고 유효한 블록 형식 식별자를 포함하는지 확인합니다. 또한 이 함수는 메모리 블록 할당이 원래 요청된 경우 개체 할당 순서 번호 및 소스 파일 이름/줄 번호를 가져오는 데도 사용할 수 있습니다. 또는 매개 변수에 lineNumber requestNumberfilename전달된 값이 아니면NULL 로컬 힙에서 블록을 찾으면 메모리 블록의 디버그 헤더에 있는 값으로 매개 변수 _CrtIsMemoryBlock 를 설정합니다. _DEBUG가 정의되지 않은 경우 전처리 중에 _CrtIsMemoryBlock에 대한 호출이 제거됩니다.

실패하면 _CrtIsMemoryBlock 반환되고 출력 매개 변수는 기본값 requestNumber 으로 초기화되고 lineNumber 0으로 설정되고 filename NULL.FALSE

이 함수는 반환 TRUE 되거나 FALSE매크로 중 _ASSERT 하나에 전달되어 기본 디버깅 오류 처리 메커니즘을 만들 수 있습니다. 다음 예제에서는 지정된 주소가 로컬 힙 내에 없으면 어설션 오류가 발생합니다.

_ASSERTE( _CrtIsMemoryBlock( userData, size, &requestNumber,
          &filename, &linenumber ) );

다른 디버그 함수 및 매크로와 함께 사용할 수 있는 방법에 _CrtIsMemoryBlock 대한 자세한 내용은 보고용 매크로를 참조하세요. 기본 힙의 디버그 버전에서 메모리 블록을 할당, 초기화 및 관리하는 방법에 대한 자세한 내용은 CRT 디버그 힙 세부 정보를 참조 하세요.

요구 사항

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

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

라이브러리

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

예시

문서의 예제를 참조하세요 _CrtIsValidHeapPointer .

참고 항목

디버그 루틴