Defined in header <string.h> | ||
---|---|---|
char *strdup( const char *src ); | (since C23) |
Returns a pointer to a null-terminated byte string, which is a duplicate of the string pointed to by src
. The space for the new string is obtained as if the malloc
was invoked. The returned pointer must be passed to free
to avoid a memory leak.
If an error occurs, a null pointer is returned and errno
might be set.
src | - | pointer to the null-terminated byte string to duplicate |
A pointer to the newly allocated string, or a null pointer if an error occurred.
The function is identical to the POSIX strdup.
#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); }
Output:
s2 = "Duplicate me!"
(C23) | allocates a copy of a string of specified size (function) |
(C11) | copies one string to another (function) |
allocates memory (function) |
|
deallocates previously allocated memory (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/byte/strdup