_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 运行库的版本。

.NET Framework 等效项

系统:: 字符串:: 克隆

请参见

参考

字符串操作(crt)

_strdup, _wcsdup, _mbsdup

概念

堆分配函数的“Debug”版本