summaryrefslogtreecommitdiff
path: root/docs/ref/util/nng_alloc.adoc
blob: 61a79085268adc9c618103cf6adaa9933ca79d90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
## nng_alloc

Allocate memory.

### Synopsis

```c
#include <nng/nng.h>

void *nng_alloc(size_t size);
```

### Description

The `nng_alloc` function allocates a contiguous memory region of at least _size_ bytes.
The memory will be 64-bit aligned.

The returned memory can be used to hold message buffers, in which case it can be directly passed to xref:../nng_send.adoc[`nng_send`] using the flag ((`NNG_FLAG_ALLOC`)).
Alternatively, it can be freed when no longer needed using xref:nng_free.adoc[`nng_free`].

IMPORTANT: Do not use the system `free` function to release this memory.
Doing so may lead to a crash or other undesirable and unpredictable behavior.

### Return Values

This function returns a pointer to the allocated memory on success, and `NULL` otherwise.

### Errors

No errors are returned, but a `NULL` return value should be treated the same as `NNG_ENOMEM`.

### See Also

xref:nng_free.adoc[nng_free],
xref:../sock/nng_send.adoc[nng_send]