다음을 통해 공유


_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를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

디버그 루틴