Versions of _strdup and _wcsdup that use the debug version of malloc.
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 );
Null-terminated source string.
Requested type of memory block: _CLIENT_BLOCK or _NORMAL_BLOCK.
Pointer to name of source file that requested allocation operation or NULL.
Line number in source file where allocation operation was requested or NULL.
Each of these functions returns a pointer to the storage location for the copied string or NULL if storage cannot be allocated.
The _strdup_dbg and _wcsdup_dbg functions are identical to _strdup and _wcsdup except that, when _DEBUG is defined, these functions use the debug version of malloc, _malloc_dbg, to allocate memory for the duplicated string. For information on the debugging features of _malloc_dbg, see _malloc_dbg.
You do not need to call these functions explicitly in most cases. Instead, you can define the flag _CRTDBG_MAP_ALLOC. When _CRTDBG_MAP_ALLOC is defined, calls to _strdup and _wcsdup are remapped to _strdup_dbg and _wcsdup_dbg, respectively, with the blockType set to _NORMAL_BLOCK. Thus, you do not need to call these functions explicitly unless you want to mark the heap blocks as _CLIENT_BLOCK. For more information on block types, see Types of blocks on the debug heap.
Generic-Text Routine Mappings
|TCHAR.H routine||_UNICODE & _MBCS not defined||_MBCS defined||_UNICODE defined|
For additional compatibility information, see Compatibility.
All debug versions of the C run-time libraries.