_strdup, _wcsdup, _mbsdup
Duplicitní hodnoty řetězců.
Důležité |
---|
_mbsdupnelze použít v aplikacích, které jsou spuštěny v Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /ZW. |
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Parametry
- strSource
Řetězec zakončený hodnotou Null zdroje.
Vrácená hodnota
Každá z těchto funkcí vrací ukazatel na umístění úložiště pro řetězec zkopírované nebo NULL v případě, že nelze přidělit úložiště.
Poznámky
_strdup Volání funkce malloc k přidělení místa pro kopii strSource a pak zkopíruje strSource na přidělený prostor.
_wcsdupa _mbsdup jsou verze širokého znaku a vícebajtové znakové sady _strdup.Argumenty a vrácené hodnoty _wcsdup jsou řetězci širokého znaku; u _mbsdup jsou vícebajtové znakové řetězce.Tyto tři funkce chovat identicky jinak.
Mapování rutiny obecného textu
TCHAR.Byla zahájena rutina h |
_UNICODE & _MBCS není definováno |
_MBCS, definice |
_UNICODE definována |
---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Protože _strdup volání malloc přidělení místa pro kopii strSource, je vhodné vždy uvolnění této paměti pomocí volání bez rutinní na ukazatel, který je vrácený voláním _strdup.
Pokud _DEBUG a _CRTDBG_MAP_ALLOC jsou definovány, _strdup a _wcsdup se nahrazují volání _strdup_dbg a _wcsdup_dbg Chcete-li povolit ladění přidělení paměti.Další informace naleznete v tématu _strdup_dbg _wcsdup_dbg.
Požadavky
Byla zahájena rutina |
Požadované záhlaví |
---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> nebo <wchar.h> |
_mbsdup |
<mbstring.h> |
Další informace o kompatibilitě, viz Kompatibilita.
Příklad
// crt_strdup.c
#include <string.h>
#include <stdio.h>
int main( void )
{
char buffer[] = "This is the buffer text";
char *newstring;
printf( "Original: %s\n", buffer );
newstring = _strdup( buffer );
printf( "Copy: %s\n", newstring );
free( newstring );
}
Ekvivalent v rozhraní .NET Framework
Viz také
Referenční dokumentace
strncat, _strncat_l, wcsncat, wcsncat_l, _mbsncat _mbsncat_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
strncpy, _strncpy_l, wcsncpy, _wcsncpy_l, _mbsncpy, _mbsncpy_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l