summaryrefslogtreecommitdiff
path: root/src/util/util.h
blob: d5fa63614305fcad42169de12bf15686deaecef2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef KALMIA_UTIL_H
#define KALMIA_UTIL_H

#include <kalmia.h>


/** @brief add a new element to an array
 *
 * @param array  Pointer to the array to expand
 * @param len    Pointer to the current length of the array
 * @param element_size  Size of each element in the array
 *
 * @returns  A pointer to the newly added element of the array, or NULL on failure.
 */
void * kai_expand_array(void **array, size_t *len, size_t element_size);


/** @brief Convert a string to an array of reals
 *
 * This function will always fill the array with `count` elements. If there are not
 * `count` elements to be converted in the string, it will fill the rest of the array
 * with zeroes.
 *
 * @param dest  Array of reals in which to store the results
 * @param str   The string to convert
 * @param count The number of elements to convert
 *
 * @returns  The number of conversions performed. If there were at least `count` elements
 * in the string to convert, this is the same as `count`. If not, it is the number of
 * actual elements present in the string.
 */
size_t kai_text_to_reals(ka_real_t *dest, const char *str, size_t count);


size_t kai_text_to_longs(long *dest, const char *str, size_t count);


void *kai_alloc(size_t size, const char *purpose);

#endif