_strdup_dbg, _wcsdup_dbg
Wersje _strdup i _wcsdup korzystający z wersją debugowania 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 );
Parametry
strSource
Ciąg zerem źródła.blockType
Żądany typ bloku pamięci: _CLIENT_BLOCK lub _NORMAL_BLOCK.filename
Wskaźnik do nazwy pliku źródłowego, który żądał operacji alokacji ani mieć wartości NULL.linenumber
Numer w pliku źródłowym, której zażądano operacji alokacji wiersza, lub wartość NULL.
Wartość zwracana
Każda z tych funkcji zwraca wskaźnik do lokalizacji magazynu dla skopiowanych ciąg lub NULL , jeśli nie można przydzielić pamięci masowej.
Uwagi
_strdup_dbg i _wcsdup_dbg funkcje są takie same jak _strdup i _wcsdup z tą różnicą, że, kiedy _DEBUG jest zdefiniowany, użyj tych funkcji wersji debugowania malloc, _malloc_dbg, można przydzielić pamięci dla zduplikowanych ciągu.Aby uzyskać informacje o debugowaniu funkcje _malloc_dbg, zobacz _malloc_dbg.
Nie należy wywoływać te funkcje jawnie w większości przypadków.Zamiast tego można zdefiniować flagi _CRTDBG_MAP_ALLOC.Gdy _CRTDBG_MAP_ALLOC jest zdefiniowany, wywołuje do _strdup i _wcsdup są mapowane ponownie do _strdup_dbg i _wcsdup_dbgodpowiednio z blockType ustawioną _NORMAL_BLOCK.Dzięki temu, nie trzeba jawnie wywołać tych funkcji, jeśli nie chcesz oznaczyć jako bloki stosu _CLIENT_BLOCK.Aby uzyskać więcej informacji na typy bloku, zobacz typów bloków na debugowanie stosu.
Mapowania procedur zwykłego tekstu
Procedura TCHAR.H |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowano |
---|---|---|---|
_tcsdup_dbg |
_strdup_dbg |
_mbsdup |
_wcsdup_dbg |
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_strdup_dbg, _wcsdup_dbg |
< crtdbg.h > |
Dodatkowe informacje o zgodności — zobacz: Zgodność we Wprowadzeniu.
Biblioteki
Debugowanie wszystkie wersje C biblioteki czasu wykonywania.