_strdup, _wcsdup, _mbsdup
Stringhe dei duplicati.
Importante |
---|
_mbsdup non può essere utilizzato nelle applicazioni eseguite in Windows Runtime.Per ulteriori informazioni, vedere Funzioni CRT non supportate con /ZW. |
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Parametri
- strSource
Stringa di origine con terminazione null.
Valore restituito
Ognuna di queste funzioni restituisce un puntatore al percorso di archiviazione per la stringa copiata o NULL se l'archiviazione non può essere allocata.
Note
Le chiamate di funzione malloc di _strdup per allocare spazio di memoria per una copia di strSource e copia strSource lo spazio allocato.
_wcsdup e _mbsdup sono versioni a caratteri di tipo "wide" e di caratteri multibyte di _strdup.Gli argomenti e il valore restituito di _wcsdup sono stringhe di caratteri di tipo "wide", quelli di _mbsdup sono stringhe di caratteri multibyte.Altrimenti queste tre funzioni si comportano in modo identico.
Mapping di routine a Testo generico
TCHAR.H routine |
_UNICODE & _MBCS non definiti |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Poiché _strdup chiama malloc per allocare spazio di memoria per la copia di strSource, è consigliabile rilasciare sempre questa memoria chiama la routine di libero sul puntatore restituito dalla chiamata a _strdup.
Se _DEBUG e _CRTDBG_MAP_ALLOC sono definiti, _strdup e _wcsdup vengono sostituiti dalle chiamate a _strdup_dbg e a _wcsdup_dbg per consentire le allocazioni di memoria di debug.Per ulteriori informazioni, vedere _strdup_dbg, _wcsdup_dbg.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> o <wchar.h> |
_mbsdup |
<mbstring.h> |
Per informazioni aggiuntive di compatibilità, vedere Compatibilità.
Esempio
// 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 );
}
Equivalente .NET Framework
Vedere anche
Riferimenti
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