Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Duplica cadeias de caracteres.
Importante
_mbsdup não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Parâmetros
strSource
Cadeia de caracteres de origem com terminação nula.
Valor retornado
Cada uma dessas funções retorna um ponteiro para o local de armazenamento da cadeia de caracteres copiada ou NULL se o armazenamento não puder ser alocado.
Comentários
A _strdup função chama malloc para alocar espaço de armazenamento para uma cópia e strSource , em seguida, copia strSource para o espaço alocado.
_wcsdup e _mbsdup são versões de caracteres largos e de caracteres multibyte de _strdup. Os argumentos e o valor retornado de _wcsdup são cadeias de caracteres largos. Os argumentos e o valor retornado de são cadeias de _mbsdup caracteres multibyte. Caso contrário, essas três funções se comportam de forma idêntica.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
|---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Como _strdup as chamadas malloc para alocar espaço de armazenamento para a cópia de strSource, é uma boa prática sempre liberar essa memória chamando a free rotina no ponteiro retornado pela chamada para _strdup.
Se _DEBUG e _CRTDBG_MAP_ALLOC são definidos _strdup e _wcsdup são substituídos por chamadas para _strdup_dbg e _wcsdup_dbg, para permitir a depuração de alocações de memória. Para obter mais informações, consulte _strdup_dbge _wcsdup_dbg.
Requisitos
| Rotina | Cabeçalho necessário |
|---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> ou <wchar.h> |
_mbsdup |
<mbstring.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// 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
Confira também
Manipulação de cadeia de caracteres
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