Partager via


_strdup, , _wcsdup_mbsdup

Duplique les chaînes.

Important

La fonction _mbsdup ne peut pas être utilisée dans les applications qui s’exécutent dans Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

Syntaxe

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 retournée

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 _strdup fonction appelle malloc l’allocation d’espace de stockage pour une copie de strSource l’espace alloué, puis la copie strSource vers l’espace alloué.

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

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routines de texte générique

Routine TCHAR.H _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tcsdup _strdup _mbsdup _wcsdup

Étant donné que _strdup les appels malloc à allouer de l’espace de stockage pour la copie de strSource, il est recommandé de toujours libérer cette mémoire en appelant la free routine sur le pointeur 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 permettre le débogage des allocations de mémoire. Pour plus d’informations, consultez _strdup_dbg, _wcsdup_dbg.

Spécifications

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 Compatibility.

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 );
}
Original: This is the buffer text
Copy:     This is the buffer text

Voir aussi

Manipulation de chaînes
memset, wmemset
strcat, , wcscat_mbscat
strcmp, , wcscmp_mbscmp
strncat, , _strncat_l, _wcsncat_lwcsncat, , _mbsncat_mbsncat_l
strncmp, , wcsncmp_mbsncmp, ,_mbsncmp_l
strncpy, , _strncpy_l, _wcsncpy_lwcsncpy, , _mbsncpy_mbsncpy_l
_strnicmp, , _wcsnicmp, _strnicmp_l_mbsnicmp, , _wcsnicmp_l_mbsnicmp_l
strrchr, , wcsrchr_mbsrchr, ,_mbsrchr_l
strspn, , wcsspn_mbsspn, ,_mbsspn_l