Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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