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