Share via


_strdup, _wcsdup, _mbsdup

Reproduit des chaînes.

Important

_mbsdup ne peut pas être utilisé dans les applications qui s'exécutent dans Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.

char *_strdup(
   const char *strSource 
);
wchar_t *_wcsdup(
   const wchar_t *strSource 
);
unsigned char *_mbsdup(
   const unsigned char *strSource 
);

Paramètres

  • strSource
    Chaîne se terminant par null source.

Valeur de retour

Chacune de ces fonctions retourne un pointeur vers l'emplacement de stockage de la chaîne copiée ou NULL si la mémoire ne peut pas être allouée.

Notes

Les appels de fonction d' _strdupmalloc pour allouer l'espace de stockage pour une copie d' strSource et copie ensuite strSource à l'espace alloué.

_wcsdup et _mbsdup sont à caractères larges et des versions à caractères multioctets d' _strdup.Les arguments et la valeur de retour d' _wcsdup sont des chaînes à caractères larges ; ces d' _mbsdup sont des chaînes de caractères multioctets.Ces trois fonctions se comportent de sinon.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tcsdup

_strdup

_mbsdup

_wcsdup

Étant donné qu' _strdup appelle malloc pour allouer l'espace de stockage pour la copie d' strSource, il est conseillé de publication toujours cette mémoire en appelant la routine d' inscription sur le pointeur qui est retourné par l'appel à _strdup.

Si _DEBUG et _CRTDBG_MAP_ALLOC sont définis, _strdup et _wcsdup sont remplacés par des appels à _strdup_dbg et à _wcsdup_dbg pour autoriser les allocations de mémoire de débogage.Pour plus d'informations, consultez _strdup_dbg, _wcsdup_dbg.

Configuration requise

Routine

En-tête requis

_strdup

<string.h>

_wcsdup

<string.h> ou <wchar.h>

_mbsdup

<mbstring.h>

Pour des informations de compatibilité supplémentaires, consultez Compatibilité.

Exemple

// 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 );
}
  

Équivalent .NET Framework

System::String::Clone

Voir aussi

Référence

Manipulation de chaînes (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