Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at


Returns a pointer to a new memory node in the NSPR heap containing a copy of a specified string.


#include <plstr.h>

char *PL_strdup(const char *s);


The function has a single parameter:

The string to copy, may be NULL.


The function returns one of these values:

  • If successful, a pointer to a copy of the specified string.
  • If the memory allocation fails, NULL.


To accommodate the terminator, the size of the allocated memory is one greater than the length of the string being copied. A NULL argument, like a zero-length argument, results in a pointer to a one-byte block of memory containing the null value.


The memory allocated by PL_strdup should be freed with PL_strfree.

Document Tags and Contributors

 Contributors to this page: teoli, Waldo, Mook, Nickolay, Rappo
 Last updated by: Waldo,