_strdup, _wcsdup, _mbsdup
Cadeias de caracteres das duplicatas.
Importante |
---|
_mbsdup não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /ZW. |
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 NULL- finalizada de origem.
Valor de retorno
Cada uma dessas funções retorna um ponteiro para o local de armazenamento para a cadeia de caracteres copiada ou NULL se o armazenamento não pode ser atribuído.
Comentários
As chamadas de função malloc de _strdup atribuir o espaço de armazenamento para uma cópia de strSource e seguida strSource para o espaço alocado.
_wcsdup e _mbsdup são versões de largo- caractere e o caractere multibyte- de _strdup.Os argumentos e o valor de retorno de _wcsdup são cadeias de caracteres de largo- caractere; essas de _mbsdup são cadeias de caracteres de multibyte- caractere.Essas três funções se comportam de forma idêntica.
Mapeamentos da rotina de Genérico- texto
Rotina de TCHAR.H |
_UNICODE & _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Porque _strdup chama malloc atribuir o espaço de armazenamento para a cópia de strSource, é boa prática sempre liberar a memória chamando a rotina de livre no ponteiro que é retornado pela chamada a _strdup.
Se _DEBUG e _CRTDBG_MAP_ALLOC são definidos, _strdup e _wcsdup são substituídos por chamadas a _strdup_dbg e a _wcsdup_dbg para permitir depurar alocações de memória.Para obter mais informações, consulte _strdup_dbg, _wcsdup_dbg.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> ou <wchar.h> |
_mbsdup |
<mbstring.h> |
Para informações extras de 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 );
}
Equivalência do .NET Framework
Consulte também
Referência
Manipulação de cadeia de caracteres (CRT)
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