_strdup_dbg, _wcsdup_dbg
使用 malloc的调试版本 _strdup 和 _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
对请求分配操作或空源文件的名称的指针。linenumber
在赋值操作是请求或空的源文件中的行号。
返回值
,如果不能分配,这些函数都返回一个指针发送回复制的字符串或 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 运行库的版本。