_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
Voir aussi
Référence
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