_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 routine de texte générique
TCHAR.H Routine |
_UNICODE et _MBCS non défini |
_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îne
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
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour