다음을 통해 공유


_CrtMemDifference

비교 두 메모리 상태와 차이점 (디버그 버전에만 해당)를 반환 합니다.

int _CrtMemDifference( 
   _CrtMemState *stateDiff,
   const _CrtMemState *oldState,
   const _CrtMemState *newState 
);

매개 변수

  • stateDiff
    에 대 한 포인터를 _CrtMemState 의 차이 (반환)는 두 메모리 상태를 저장 하는 데 사용 되는 구조입니다.

  • oldState
    이전 상태로 메모리에 대 한 포인터 (_CrtMemState 구조).

  • newState
    나중에 메모리 상태에 대 한 포인터 (_CrtMemState 구조).

반환 값

메모리는 크게 다른 경우 _CrtMemDifference TRUE를 반환 합니다.그렇지 않으면 함수는 FALSE를 반환 합니다.

설명

_CrtMemDifference 비교 함수 oldState 및 newState 차이점을 저장 하 고 stateDiff는 다음 사용할 수 있습니다 응용 프로그램에서 메모리 누수 및 기타 메모리 문제를 탐지 합니다.때 _DEBUG 정의 되지 않은, 호출 하려면 _CrtMemDifference 전처리 하는 동안 제거 됩니다.

newState및 oldState 각각에 대 한 유효한 포인터 이어야 합니다는 _CrtMemState 에 의해 채워져 있는 crtdbg.h에 정의 된 구조를 _CrtMemCheckpoint 호출 하기 전에 _CrtMemDifference.stateDiff이전에 할당 된 인스턴스를에 대 한 포인터 이어야 합니다는 _CrtMemState 구조체입니다.경우 stateDiff, newState, 또는 oldState 입니다 NULL, 설명에 따라 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사.실행 계속 수 있으면 errno, _doserrno, _sys_errlist, _sys_nerr 로 설정 됩니다 EINVAL 및 함수는 FALSE를 반환 합니다.

_CrtMemDifference비교는 _CrtMemState 필드 값에 블록의 oldState 의 newState 에 결과 저장 하 고 stateDiff.블록 형식 수를 할당 하거나 각 형식에 대해 할당 된 블록의 총 수는 두 메모리 상태 간에 서로 다른 경우 상태는 크게 다를 수 있다고 말합니다.또한 두 상태 저장 됩니다에 대 한 적이 한 번에 두 가지 상태와 할당 간의 차이 대 한 할당의 크기 차이 stateDiff.

기본적으로 내부 C 실행 시간 블록 (_CRT_BLOCK) 메모리 상태 작업에 포함 되지 않습니다._CrtSetDbgFlag 설정 하려면 함수를 사용할 수는 _CRTDBG_CHECK_CRT_DF 의 비트 _crtDbgFlag 이러한 블록 누수 탐지 및 기타 메모리 상태 작업을 포함 합니다.메모리 블록을 해제 (_FREE_BLOCK) 발생 하지 않습니다 _CrtMemDifference 에서 TRUE를 반환 합니다.

힙 상태 함수에 대 한 자세한 내용은 및 _CrtMemState 구조, 참조 하십시오 힙 상태 보고 함수.메모리 블록 할당, 초기화 및 기본 힙의 디버그 버전에서 관리 하는 방법에 대 한 자세한 내용은 참조 하십시오. 메모리 관리 및 디버그 힙.

요구 사항

루틴

필수 헤더

선택적 헤더

_CrtMemDifference

<crtdbg.h>

<errno.h>

더 많은 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

라이브러리: 의 디버그 버전 CRT 라이브러리 기능 만 합니다.

예제

자세한 내용은 crt_dbg1를 참조하십시오.

해당 .NET Framework 항목

해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.

참고 항목

참조

루틴을 디버깅 합니다.

_crtDbgFlag