_free_dbg
(디버그 버전에만 해당) 힙 메모리 블록을 해제합니다.
void _free_dbg(
void *userData,
int blockType
);
매개 변수
userData
할당된 메모리 블록에 대한 포인터입니다.blockType
해제하기 위해 할당된 메모리 블록의 형식: _CLIENT_BLOCK , _NORMAL_BLOCK , 또는 _IGNORE_BLOCK .
설명
_free_dbg 함수는 _해제 함수의 디버그 버전입니다. _DEBUG를 정의 하지 않으면, _free_dbg 의 각 호출은 free 의 호출에 감소됩니다. free 와 _free_dbg 는 기본 힙에서 메모리 블록 해제 하지만, _free_dbg 는 두 디버깅 기능을 사용할 수 있습니다: 메모리 부족 조건을 시뮬레이션 하기위해 연결된 힙의 블록을 해제하는 능력과 특정한 할당 형식을 해제하기 위한 블록 타입 매개변수.
_free_dbg는 사용 가능한 작업을 수행 하기 전에 지정된 모든 파일과 블록 위치에 유효성 검사를 수행합니다. 응용 프로그램은 이 정보를 사용할 수 없습니다. 메모리 블록을 해제할 경우, 디버그 힙 관리자는 자동으로 사용자 양쪽에 있는 버퍼의 무결성을 확인하며 덮어쓰기가 발생하면 오류 보고서를 만듭니다. _crtDbgFlag 플래그의 _CRTDBG_DELAY_FREE_MEM_DF 비트 필드가 설된 경우,해제 된 블록은 _FREE_BLOCK 에 할당된 0xDD 값으로 채워집니다. 그리고 메모리 블록의 힙광 연결된 리스트에 보관됩니다.
해제 된 메모리에 오류가 발생 하면 errno 는 오류의 성격에서 운영 체제의 정보로 설정됩니다. 자세한 내용은 errno, _doserrno, _sys_errlist 및 _sys_nerr을 참조하십시오.
기본 힙의 디버그 버전에서 메모리 블록이 어떻게 할당되고 초기화되고 관리되는지에 대한 자세한 내용은 CRT 디버그 힙 정보 를 참조하십시오. 할당 블록 종류 및 사용 방법에 대한 더 자세한 내용은 디버그 힙의 블록 종류을 참조하십시오. 호출 표준 힙 함수 및 응용 프로그램의 디버그 빌드에서 디버그 버전의 차이점에 대한 내용은 힙 할당 함수의 디버그 버전를 참조하십시오.
요구 사항
루틴 |
필수 헤더 |
---|---|
_free_dbg |
<crtdbg.h> |
호환성에 대한 자세한 내용은 소개 단원의 호환성 부분을 참조하십시오.
예제
_free_dbg 을 사용하는 방법에 대한 예제는 crt_dbg2을 참조하십시오.
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제를 참조하십시오.