#include <wchar.h> wchar_t *wcsdup(const wchar_t *s);
The wcsdup function is the wide-character equivalent of the strdup function. It allocates and returns a new wide-character string whose initial contents is a duplicate of the wide-character string pointed to by s.
Memory for the new wide-character string is obtained with malloc(3), and can be freed with free(3).
The wcsdup function returns a pointer to the new wide-character string, or NULL if sufficient memory was not available.