Namespaces
Variants

strdup

From cppreference.net
< c ‎ | string ‎ | byte
Definido en el encabezado <string.h>
char * strdup ( const char * src ) ;
(desde C23)

Devuelve un puntero a una cadena de bytes terminada en nulo, que es un duplicado de la cadena apuntada por src . El espacio para la nueva cadena se obtiene como si se hubiera invocado malloc . El puntero devuelto debe pasarse a free para evitar una fuga de memoria.

Si ocurre un error, se devuelve un puntero nulo y errno podría establecerse.

Contenidos

Parámetros

src - puntero a la cadena de bytes terminada en nulo que se va a duplicar

Valor de retorno

Un puntero a la cadena recién asignada, o un puntero nulo si ocurrió un error.

Notas

La función es idéntica a la POSIX strdup .

Ejemplo

#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    const char *s1 = "Duplicate me!";
    char *s2 = strdup(s1);
    printf("s2 = \"%s\"\n", s2);
    free(s2);
}

Salida:

s2 = "Duplicate me!"

Véase también

(C23)
asigna una copia de una cadena de tamaño especificado
(función)
copia una cadena a otra
(función)
asigna memoria
(función)
desasigna memoria previamente asignada
(función)