Condividi tramite


_strdup, _wcsdup, _mbsdup

Stringhe dei duplicati.

Nota importanteImportante

_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

System::String::Clone

Vedere anche

Riferimenti

Modifica delle stringhe (CRT)

memset, wmemset

strcat, wcscat, _mbscat

strcmp, wcscmp, _mbscmp

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

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l