---
name: "nng_msg_realloc"
section: "3"
platform: "linux"
package: "libnng-dev"
version: "1.10.1-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/nng_msg_realloc"
---

# nng\_msg\_realloc(3)

reallocate a message

## NAME

nng\_msg\_realloc - reallocate a message

## SYNOPSIS

```
#include <nng/nng.h>
int nng_msg_realloc(nng_msg *msg, size_t size);
```

## DESCRIPTION

The `nng_msg_realloc()` function re-allocates a message so that it has a body of length *size*. This message attempts to avoid extra allocations, and will reuse the existing memory when possible.

**Tip**\

`nng_msg_realloc` is suitable for creating space for direct writing of data. When appending many small pieces of data to a message using `nng_msg_append()`, allocations may be reduced by first using `nng_msg_reserve()` to create sufficient space. In any case, reallocating or appending to a message is guaranteed to succeed if the resulting body length is less than `nng_msg_capacity()`.

**Note**\

Pointers to message body and header content obtained prior to this function must not be in use, as the underlying memory used for the message may have changed, particularly if the message size is increasing.

## RETURN VALUES

This function returns 0 on success, and non-zero otherwise.

## ERRORS

`NNG_ENOMEM`

Insufficient free memory exists to reallocate a message.

## SEE ALSO

nng\_msg\_reserve(3), [nng\_msg\_alloc(3)](/nng_msg_alloc/3.md), [nng\_msg\_append(3)](/nng_msg_append/3.md), [nng\_msg\_body(3)](/nng_msg_body/3.md), [nng\_msg\_chop(3)](/nng_msg_chop/3.md), [nng\_msg\_free(3)](/nng_msg_free/3.md), [nng\_msg\_insert(3)](/nng_msg_insert/3.md), [nng\_msg\_len(3)](/nng_msg_len/3.md), [nng\_msg\_trim(3)](/nng_msg_trim/3.md), [nng\_strerror(3)](/nng_strerror/3.md), [nng\_msg(5)](/nng_msg/5.md), [nng(7)](/nng/7.md)
