strdup es una función de lenguaje de programación C no estándar que crea una copia de la cadena terminada en cero especificada en el montón (usando malloc ) y le devuelve un puntero. Free debe llamarse para liberar el espacio utilizado por la copia creada . La característica que apareció en BSD , está incluida en POSIX , pero no forma parte de los estándares ANSI/ISO, aunque es compatible con casi todos los compiladores.
El prototipo se describe en el archivo de encabezado string.h:
char* strdup (const char *src);
Un puntero a una copia de la cadena. Si falla la asignación de memoria, no se crea ninguna copia y la función devuelve NULL.