_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
指向已请求分配操作的源文件名的指针或 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 运行时库的所有调试版本。

另请参阅

字符串操作
_strdup_wcsdup_mbsdup
堆分配函数的调试版本