diff options
Diffstat (limited to 'docs/ref/api/util')
| -rw-r--r-- | docs/ref/api/util/index.md | 1 | ||||
| -rw-r--r-- | docs/ref/api/util/nng_alloc.md | 47 |
2 files changed, 48 insertions, 0 deletions
diff --git a/docs/ref/api/util/index.md b/docs/ref/api/util/index.md index 0a96da44..24c88d9c 100644 --- a/docs/ref/api/util/index.md +++ b/docs/ref/api/util/index.md @@ -5,6 +5,7 @@ with application portability. These are not fundamental to NNG or Scalability Protocols, but we find them useful for a variety of other uses. +- [nng_alloc](nng_alloc.md) - [nng_clock](nng_clock.md) - [nng_id_map](nng_id_map.md) - [nng_msleep](nng_msleep.md) diff --git a/docs/ref/api/util/nng_alloc.md b/docs/ref/api/util/nng_alloc.md new file mode 100644 index 00000000..39b7bc2c --- /dev/null +++ b/docs/ref/api/util/nng_alloc.md @@ -0,0 +1,47 @@ +# nng_alloc + +## NAME + +nng_alloc --- allocate memory + +## SYNOPSIS + +```c +#include <nng/nng.h> + +void *nng_alloc(size_t size); +void nng_free(void *ptr, size_t size); +``` + +## DESCRIPTION + +The {{i:`nng_alloc`}} function allocates a contiguous memory region of +at least _size_ bytes. +The memory will be 64-bit aligned. + +The {{i:`nng_free`}} function deallocates {{i:memory}} previously allocated by `nng_alloc`. + +Memory returned by `nng_alloc` can be used to hold message buffers, in which +case it can be directly passed to [`nng_send`][nng_send] using the flag `NNG_FLAG_ALLOC`. +Alternatively, it can be freed when no longer needed using `nng_free`. + +> [!IMPORTANT] +> Do not use the system `free` function (or the C++ `delete` operator) to release this memory. +> On some configurations this may work, but on others it will lead to a crash or +> other unpredictable behavior. + +## RETURN VALUES + +The `nng_alloc` function returns a pointer to the allocated memory on success, +and `NULL` otherwise. + +## ERRORS + +No errors are returned, but if memory cannot be allocated then `NULL` is returned. +This can reasonably be treated as if an `NNG_ENOMEM` error occurred. + +## SEE ALSO + +[nng_send][nng_send] + +[nng_send]: [TODO.md] |
