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