_strdup, _wcsdup, _mbsdup
Duplica las cadenas.
Importante |
---|
_mbsdup no se puede utilizar en las aplicaciones que se ejecutan en Windows en tiempo de ejecución.Para obtener más información, vea Funciones CRT no compatibles con /ZW. |
char *_strdup(
const char *strSource
);
wchar_t *_wcsdup(
const wchar_t *strSource
);
unsigned char *_mbsdup(
const unsigned char *strSource
);
Parámetros
- strSource
Cadena terminada en null de origen.
Valor devuelto
Cada una de estas funciones devuelve un puntero a la ubicación de almacenamiento para la cadena copiada o NULL si el almacenamiento no puede estar asignado.
Comentarios
Las llamadas de función malloc de _strdup para asignar espacio de almacenamiento para una copia de strSource y después copian strSource el espacio asignado.
_wcsdup y _mbsdup son versiones de caracteres anchos y de multibyte- carácter de _strdup.Los argumentos y el valor devuelto de _wcsdup son cadenas de caracteres; las de _mbsdup son cadenas de multibyte- carácter.Estas tres funciones se comportan exactamente igual de otra manera.
Asignaciones de la rutina de Genérico- texto
Rutina de TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsdup |
_strdup |
_mbsdup |
_wcsdup |
Dado que _strdup llama malloc para asignar espacio de almacenamiento para la copia de strSource, es recomendable liberar siempre esta memoria llamando a la rutina de libre en el puntero devuelto por la llamada a _strdup.
Si se definen _DEBUG y _CRTDBG_MAP_ALLOC, _strdup y _wcsdup son reemplazados por llamadas a _strdup_dbg y a _wcsdup_dbg para permitir la depuración asignaciones de memoria.Para obtener más información, vea _strdup_dbg, _wcsdup_dbg.
Requisitos
Rutina |
Encabezado necesario |
---|---|
_strdup |
<string.h> |
_wcsdup |
<string.h> o <wchar.h> |
_mbsdup |
<mbstring.h> |
Para obtener información adicional de compatibilidad, vea Compatibilidad.
Ejemplo
// 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 );
}
Equivalente en .NET Framework
Vea también
Referencia
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