分享方式:


_strdup_dbg, _wcsdup_dbg

_strdup_wcsdup 的版本,其使用的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
);

參數

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
堆積配置函式的偵錯版本