Scroll to navigation

iarray_allocate(3) Library Functions Manual iarray_allocate(3)

NAME

iarray_allocate - get pointer to nth element in iarray

SYNTAX

#include <libowfat/iarray.h>

void* iarray_allocate(iarray* x, size_t pos);


iarray x;
size_t pos;
t* p = iarray_allocate(&x,pos);

DESCRIPTION

iarray_allocate is similar to iarray_get, but if the requested element is not in the array, the array will be resized. If the resize fails, iarray_allocate returns NULL and leaves the array untouched.

This function is safe to use in environments with multiple threads, but it can block for indeterminate time if other threads are reallocating the array at the same time.

Note that it is safe to use iarray_allocate where you would otherwise use iarray_get. The only reason to use iarray_get over iarray_allocate would be optimization.

RETURN VALUE

Return a pointer to the requested element. If there was a memory allocation failure, returns NULL.

SEE ALSO

iarray_init(3), iarray_get(3), iarray_free(3)