共用方式為


_strdup_dbg、_wcsdup_dbg

使用偵錯版本的 malloc 的 _strdup and _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 執行階段程式庫

.NET Framework 對等用法

System::String::Clone

請參閱

參考

字串操作 (CRT)

_strdup、_wcsdup、_mbsdup

概念

堆積配置函式的偵錯版本