Compartilhar via


_strdup, _wcsdup, _mbsdup

Cadeias de caracteres das duplicatas.

Observação importanteImportante

_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

System::String::Clone

Consulte também

Referência

Manipulação de cadeia de caracteres (CRT)

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