= nng_alloc(3) // // Copyright 2018 Staysail Systems, Inc. // Copyright 2018 Capitar IT Group BV // // This document is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this // file was obtained (LICENSE.txt). A copy of the license may also be // found online at https://opensource.org/licenses/MIT. // == NAME nng_alloc - allocate memory == SYNOPSIS [source, c] ---- #include 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.3.adoc[`nng_send()`] using the flag `NNG_FLAG_ALLOC`. Alternatively, it can be freed when no longer needed using xref:nng_free.3.adoc[`nng_free()`]. IMPORTANT: Do not use the system `free()` function to release this memory. On some platforms this may work, but it is not guaranteed and 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 [.text-left] xref:nng_free.3.adoc[nng_free(3)], xref:nng_send.3.adoc[nng_send(3)], xref:nng_strerror.3.adoc[nng_strerror(3)], xref:nng.7.adoc[nng(7)]