_strdup_dbg
, _wcsdup_dbg
_strdup
디버그 버전을 malloc
사용하는 버전입니다_wcsdup
.
구문
char *_strdup_dbg(
const char *strSource,
int blockType,
const char *filename,
int linenumber
);
wchar_t *_wcsdup_dbg(
const wchar_t *strSource,
int blockType,
const char *filename,
int linenumber
);
매개 변수
strSource
Null 종료 소스 문자열입니다.
blockType
요청된 메모리 블록 형식으로 _CLIENT_BLOCK
또는 _NORMAL_BLOCK
입니다.
filename
할당 작업 또는 NULL
을 요청한 소스 파일의 이름에 대한 포인터입니다.
linenumber
할당 작업이 요청되었거나 NULL
인 소스 파일의 줄 번호입니다.
반환 값
이러한 각 함수는 복사된 문자열의 스토리지 위치에 대한 포인터를 반환하거나 NULL
스토리지를 할당할 수 없는 경우 반환합니다.
설명
_strdup_dbg
가 정의되면 이러한 함수가 _wcsdup_dbg
, _strdup
의 디버그 버전을 사용하여 중복 문자열에 필요한 메모리를 할당한다는 점을 제외하면 _wcsdup
및 _DEBUG
함수는 malloc
및 _malloc_dbg
와 동일합니다. 의 디버깅 기능에 _malloc_dbg
대한 자세한 내용은 다음을 참조하세요 _malloc_dbg
.
대부분의 경우 이러한 함수를 명시적으로 호출할 필요가 없습니다. 대신 _CRTDBG_MAP_ALLOC
플래그를 정의할 수 있습니다. _CRTDBG_MAP_ALLOC
을 정의하면 _strdup
및 _wcsdup
에 대한 호출이 각각 _strdup_dbg
및 _wcsdup_dbg
로 다시 매핑되고 blockType
은 _NORMAL_BLOCK
으로 설정됩니다. 따라서 힙 블록을 _CLIENT_BLOCK
.로 표시하지 않는 한 이러한 함수를 명시적으로 호출할 필요가 없습니다. 블록 형식에 대한 자세한 내용은 디버그 힙의 블록 형식을 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcsdup_dbg |
_strdup_dbg |
_mbsdup |
_wcsdup_dbg |
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_strdup_dbg , _wcsdup_dbg |
<crtdbg.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
라이브러리
모든 디버그 버전의 C 런타임 라이브러리입니다.