_strdup_dbg, _wcsdup_dbg
Versioni di _strdup e _wcsdup che usano la versione di debug di 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 );
Parametri
strSource
Stringa di origine con terminazione null.blockType
Tipo richiesto di blocco di memoria: _CLIENT_BLOCK o _NORMAL_BLOCK.filename
Puntatore al nome del file di origine che ha richiesto l'operazione di allocazione o NULL.linenumber
Numero di riga nel file di origine in cui è stata richiesta l'operazione di allocazione o NULL.
Valore restituito
Ognuna di queste funzioni restituisce un puntatore a una posizione di archiviazione per la stringa copiata oppure NULL se l'archiviazione non può essere allocata.
Note
Le funzioni _strdup_dbg e _wcsdup_dbg sono identiche a _strdup e _wcsdup ad eccezione che, quando _DEBUG è definito, queste funzioni usano la versione di debug di malloc, _malloc_dbg per allocare memoria per la stringa duplicata. Per informazioni sulle funzionalità di debug di _malloc_dbg, vedere _malloc_dbg.
Nella maggior parte dei casi non è necessario chiamare queste funzioni in modo esplicito. In alternativa, è possibile definire il flag _CRTDBG_MAP_ALLOC. Quando _CRTDBG_MAP_ALLOC è definito, le chiamate a _strdup e _wcsdup vengono mappate nuovamente a _strdup_dbg e _wcsdup_dbg rispettivamente, con blockType impostato su _NORMAL_BLOCK. Quindi, non è necessario chiamare queste funzioni in modo esplicito a meno che non si vogliano contrassegnare blocchi di memoria heap come _CLIENT_BLOCK. Per altre informazioni sui tipi di blocchi, vedere Tipi di blocchi sull'heap di debug.
Mapping di routine di testo generico
Routine TCHAR.H |
_UNICODE e _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsdup_dbg |
_strdup_dbg |
_mbsdup |
_wcsdup_dbg |
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_strdup_dbg, _wcsdup_dbg |
<crtdbg.h> |
Per altre informazioni sulla compatibilità, vedere la sezione Compatibilità nell'introduzione.
Librerie
Tutte le versioni di debug delle librerie di runtime C.