_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 執行階段程式庫。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應