strdup

From cppreference.com
< c‎ | experimental‎ | dynamic
Defined in header <string.h>
char * strdup(const char *str1);
(dynamic memory TR)

Returns a pointer to a null-terminated byte string, which is a duplicate of the string pointed to by str1. The returned pointer must be passed to free to avoid a memory leak.

If an error occurs, a null pointer is returned and errno may be set.

As all functions from Dynamic Memory TS, strdup is only guaranteed to be available if __STDC_ALLOC_LIB__ is defined by the implementation and if the user defines __STDC_WANT_LIB_EXT2__ to the integer constant 1 before including string.h.

Parameters

str1 - pointer to the null-terminated byte string to duplicate

Return value

A pointer to the newly allocated string, or a null pointer if an error occurred.

Notes

The function is identical to the POSIX strdup except that it is allowed, but not required to set errno on error.