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 |