Partager via


_strdup, _wcsdup, _mbsdup

Duplique les chaînes.

Important

_mbsdup ne peut pas être utilisé dans les applications qui s'exécutent dans le 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 source se terminant par null.

Valeur de retour

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

Notes

La fonction_strdup appelle malloc pour allouer l'espace de stockage pour une copie de strSource et copie ensuite strSource dans l'espace alloué.

_wcsdup et _mbsdup sont des versions à caractères élargis et à caractères multi-octets de _strdup. Les arguments et la valeur de retour de _wcsdup sont des chaînes à caractères larges ; ceux de _mbsdup sont des chaînes de caractères multioctets. Ces trois fonctions se comportent sinon de façon identique.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE & _MBCS non définis

_MBCS défini

_UNICODE défini

_tcsdup

_strdup

_mbsdup

_wcsdup

Comme _strdup appelle malloc pour allouer l'espace de stockage pour la copie de strSource, il est conseillé de toujours libérer cette mémoire en appelant la routine disponible sur le pointeur retourné par l'appel à _strdup.

Si _DEBUG et _CRTDBG_MAP_ALLOC sont définis, les appels à _strdup et _wcsdup sont remplacés par des appels à _strdup_dbg et _wcsdup_dbg pour conserver de la mémoire pour les allocations de déboguage. 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 plus d'informations sur la compatibilité, 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