---
name: "SDL_strndup"
section: "3"
platform: "linux"
package: "libsdl3-doc"
version: "3.2.10+ds-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/SDL_strndup"
---

# SDL\_strndup(3)

Allocate a copy of a string, up to n characters.

## NAME

SDL\_strndup - Allocate a copy of a string, up to n characters.

## HEADER FILE

Defined in SDL3/SDL\_stdinc.h

## SYNOPSIS

```
#include "SDL3/SDL.h"
```

**char \* SDL\_strndup(const char \*str, size\_t maxlen);**

## DESCRIPTION

This allocates enough space for a null-terminated copy of **str** , up to **maxlen** bytes, using  **SDL\_malloc** , and then makes a copy of the string into this space.

If the string is longer than **maxlen** bytes, the returned string will be **maxlen** bytes long, plus a null-terminator character that isn't included in the count.

The returned string is owned by the caller, and should be passed to

**SDL\_free**\
  when no longer needed.

## FUNCTION PARAMETERS

- *str*

  the string to copy.

- *maxlen*

  the maximum length of the copied string, not counting the null-terminator character.

## RETURN VALUE

Returns a pointer to the newly-allocated string.

## THREAD SAFETY

It is safe to call this function from any thread.

## AVAILABILITY

This function is available since SDL 3.2.0.
