Condividi tramite


_strdup, _wcsdup, _mbsdup

Stringhe duplicate.

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 memorizzazione per la stringa copiata o NULL se la memoria non può essere allocata.

Note

La funzione _strdup chiama malloc per allocare spazio in memoria per una copia di strSource e poi copia strSource nello 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 di testo generico

Routine TCHAR.H

_UNICODE & _MBCS non definiti

_MBCS definito

_UNICODE definito

_tcsdup

_strdup

_mbsdup

_wcsdup

Poiché _strdup chiama malloc per allocare spazio in memoria per la copia di strSource, è consigliabile rilasciare sempre questa memoria chiamando la routine free sul puntatore restituito dalla chiamata a _strdup.

Se _DEBUG e _CRTDBG_MAP_ALLOC sono definiti, _strdup e _wcsdup vengono sostituite da chiamate a _strdup_dbg e _wcsdup_dbg per consentire di eseguire il debugging per le allocazioni della memoria. 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 ulteriori informazioni sulla 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 di 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