strdup() - save a copy of a string
#include <string.h>
char * strdup (const char *str)
The strdup(3) function allocates sufficient memory for a copy of the string str, does the copy, and returns a pointer to it. The pointer may subsequently be used as an argument to the function free(3).
If insufficient memory is available, NULL is returned.
malloc(3)
free(3)