_CrtIsValidPointer
포인터가 null이 아닌지 확인합니다. Visual Studio 2010 이전 버전의 C 런타임 라이브러리에서 지정된 메모리 범위가 읽기 및 쓰기(디버그 버전에만 해당)에 유효한지 확인합니다.
구문
int _CrtIsValidPointer(
const void *address,
unsigned int size,
int access
);
매개 변수
address
유효성 테스트를 위한 메모리 범위의 시작 부분을 가리킵니다.
size
지정된 메모리 범위의 크기입니다(바이트).
access
메모리 범위 확인을 위한 읽기/쓰기 접근성입니다.
반환 값
_CrtIsValidPointer
지정된 포인터가 null이 아니면 반환 TRUE
됩니다. Visual Studio 2010 이전의 CRT 라이브러리 버전에서 메모리 범위가 지정된 작업 또는 작업에 유효한지 여부를 반환 TRUE
합니다. 그렇지 않으면 FALSE
를 반환합니다.
설명
Visual Studio 2010 이상 버전의 size
CRT 라이브러리에서 매개 변수 및 access
매개 변수는 무시되며 _CrtIsValidPointer
지정된 address
항목이 null이 아닌지 확인합니다. 이 테스트는 직접 수행하기 쉽기 때문에 이 함수를 사용하지 않는 것이 좋습니다. Visual Studio 2010 이전 버전에서 이 함수는 address
에서 시작하는 메모리 범위와 size
바이트에 대한 확장이 지정된 액세스 가능 작업에 유효한지 확인합니다. 이 값을 TRUE
설정하면 access
메모리 범위가 읽기 및 쓰기 모두에 대해 확인됩니다. 이 경우 access
FALSE
메모리 범위는 읽기 전용으로 유효성을 검사합니다. _DEBUG
가 정의되지 않은 경우 전처리 중에 _CrtIsValidPointer
에 대한 호출이 제거됩니다.
이 함수는 반환 TRUE
되거나 FALSE
매크로 중 _ASSERT
하나에 전달되어 기본 디버깅 오류 처리 메커니즘을 만들 수 있습니다. 다음 예제에서는 메모리 범위가 읽기 및 쓰기 작업 모두에 유효하지 않은 경우 어설션 실패를 발생합니다.
_ASSERTE( _CrtIsValidPointer( address, size, TRUE ) );
다른 디버그 함수 및 매크로와 함께 사용할 수 있는 방법에 _CrtIsValidPointer
대한 자세한 내용은 보고용 매크로를 참조하세요. 기본 힙의 디버그 버전에서 메모리 블록을 할당, 초기화 및 관리하는 방법에 대한 자세한 내용은 CRT 디버그 힙 세부 정보를 참조 하세요.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_CrtIsValidPointer |
<crtdbg.h> |
_CrtIsValidPointer
는 Microsoft 확장입니다. 호환성에 대한 자세한 내용은 호환성을 참조하세요.
라이브러리
C 런타임 라이브러리의 디버그 버전만 해당됩니다.
예시
문서의 예제를 참조하세요 _CrtIsValidHeapPointer
.