table of contents
| SOLDOUT_ARRAY(3) | Library Functions Manual | SOLDOUT_ARRAY(3) |
NAME¶
soldout_array,
arr_adjust, arr_free,
arr_grow, arr_init,
arr_insert, arr_item,
arr_newitem, arr_remove,
arr_sorted_find,
arr_sorted_find_i,
parr_adjust, parr_free,
parr_grow, parr_init,
parr_insert, parr_pop,
parr_push, parr_remove,
parr_sorted_find,
parr_sorted_find_i, parr_top
— array handling functions for soldout
SYNOPSIS¶
#include
<array.h>
int
(*array_cmp_fn)(void *key,
void *array_entry);
int
arr_adjust(struct array
*arr);
void
arr_free(struct array *arr);
int
arr_grow(struct array *arr,
int need);
void
arr_init(struct array *arr,
size_t unit);
int
arr_insert(struct array *arr,
int nb, int n);
void *
arr_item(struct array *arr,
int no);
int
arr_newitem(struct array
*arr);
void
arr_remove(struct array *arr,
int idx);
void *
arr_sorted_find(struct array
*arr, void *key, array_cmp_fn
cmp);
int
arr_sorted_find_i(struct array
*arr, void *key, array_cmp_fn
cmp);
int
parr_adjust(struct parray
*arr);
void
parr_free(struct parray
*arr);
int
parr_grow(struct parray *arr,
int need);
void
parr_init(struct parray
*arr);
int
parr_insert(struct parray *parr,
int nb, int n);
void *
parr_pop(struct parray
*arr);
int
parr_push(struct parray *arr,
void *i);
void *
parr_remove(struct parray *arr,
int idx);
void *
parr_sorted_find(struct parray
*arr, void *key, array_cmp_fn
cmp);
int
parr_sorted_find_i(struct parray
*arr, void *key, array_cmp_fn
cmp);
void *
parr_top(struct parray
*arr);
DESCRIPTION¶
Types¶
- struct array
- generic linear array. Consists of the following fields:
- void * base
- actual array data.
- int size
- size of the array.
- int asize
- allocated size.
- size_t unit
- reallocation unit size.
- struct parray
- array of pointers. Consists of the following fields:
- void ** item
- actual parray data.
- int size
- size of the parray.
- int asize
- allocated size.
- array_cmp_fn
- comparison function for sorted arrays.
Functions¶
arr_adjust()- shrink the allocated memory to fit exactly the needs.
arr_free()- free the structure contents (but NOT the struct itself).
arr_grow()- increase the array size to fit the given number of elements.
arr_init()- initialize the contents of the struct.
arr_insert()- insert nb elements before the n one.
arr_item()- return a pointer to the n element.
arr_newitem()- return the index of a new element appended to the array arr.
arr_remove()- remove the n-th elements of the array.
arr_sorted_find()- O(log n) search in a sorted array, returning entry.
arr_sorted_find_i()- O(log n) search in a sorted array, returning index of the smallest element larger than the key.
parr_adjust()- shrink the allocated memory to fit exactly the needs.
parr_free()- free the structure contents (but NOT the struct itself).
parr_grow()- increase the array size to fit the given number of elements.
parr_init()- initialize the contents of the struct.
parr_insert()- insert nb elements before the n one.
parr_pop()- pop the last item of the array and return it.
parr_push()- push a pointer at the end of the array (= append).
parr_remove()- remove the idx element of the array and return it.
parr_sorted_find()- O(log n) search in a sorted array, returning entry.
parr_sorted_find_i()- O(log n) search in a sorted array, returning index of the smallest element larger than the key.
parr_top()- return the top the stack (i.e. the last element of the array).
RETURN VALUES¶
The arr_adjust(),
arr_grow(), arr_insert(),
parr_adjust(), parr_grow(),
parr_insert() and
parr_push() functions return on success 1; on error
- 0.
The arr_free(),
arr_init(), arr_remove(),
parr_free() and parr_init()
functions do not return a value.
The arr_item(),
arr_sorted_find(),
parr_pop(), parr_remove(),
parr_sorted_find() and
parr_top() functions return a pointer to the element
on success; on error - NULL.
The arr_newitem() function returns the
index on success; on error -1.
The arr_sorted_find_i() and
parr_sorted_find_i() functions return an index.
SEE ALSO¶
AUTHORS¶
The soldout library was written by
Natasha "Kerensikova" Porte
<natacha@instinctive.eu>.
Manual page was originally written by Massimo Manghi
<mxmanghi@apache.org>,
and rewritten to mdoc format by Svyatoslav Mishyn
<juef@openmailbox.org>.
| April 13, 2016 | Debian |