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
#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);
- 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.
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).
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.