442
|
1 .Dd $Mdocdate$ |
|
2 .Dt MLK_ALLOC_ARRAY 3 |
|
3 .Os |
|
4 .Sh NAME |
|
5 .Nm mlk_alloc_array , |
|
6 .Nm mlk_alloc_array0 , |
|
7 .Nm mlk_alloc_rearray , |
|
8 .Nm mlk_alloc_rearray0 |
|
9 .Nd safe array allocation |
|
10 .Sh LIBRARY |
|
11 libmlk-core (-lmlk-core) |
|
12 .Sh SYNOPSIS |
|
13 .In mlk/core/alloc.h |
|
14 .Ft void * |
|
15 .Fn mlk_alloc_array "size_t len, size_t elemsize" |
|
16 .Ft void * |
|
17 .Fn mlk_alloc_array0 "size_t len, size_t elemsize" |
|
18 .Ft void * |
|
19 .Fn mlk_alloc_rearray "void *ptr, size_t newlen, size_t elemsize" |
|
20 .Ft void * |
|
21 .Fn mlk_alloc_rearray0 "void *ptr, size_t oldlen, size_t newlen, size_t elemsize" |
|
22 .Sh DESCRIPTION |
|
23 These functions are designed to safely allocate arrays. They take an amount of |
|
24 objects to allocate and their individual sizes, the function ensuress that the |
|
25 multiplication does not overflow. |
|
26 .Pp |
|
27 The |
|
28 .Fn mlk_alloc_array |
|
29 and |
|
30 .Fn mlk_alloc_array0 |
|
31 functions allocate an array of |
|
32 .Fa len |
|
33 elements of |
|
34 .Fa elemsize |
|
35 individually. |
|
36 The |
|
37 .Fn mlk_alloc_array0 |
|
38 variant ensure the data is being zero-initialized. |
|
39 .Pp |
|
40 The |
|
41 .Fn mlk_alloc_rearray |
|
42 function reallocates the pointer |
|
43 .Fa ptr |
|
44 (which may be NULL) as an array of |
|
45 .Fa newlen |
|
46 elements of |
|
47 .Fa elemsize |
|
48 individually. |
|
49 .Pp |
|
50 The |
|
51 .Fn mlk_alloc_rearray0 |
|
52 function is similar to |
|
53 .Fn mlk_alloc_rearray |
|
54 but zero-initialize the memory. It needs the previous length given in |
|
55 .Fa oldlen |
|
56 argument because the function would not know which memory region to zero |
|
57 initialize when increasing the memory. |
|
58 .Sh RETURN VALUES |
|
59 All functions return a pointer to the memory according to the current |
|
60 allocation strategy. |
|
61 .Sh SEE ALSO |
|
62 .Xr mlk-alloc 3 , |
|
63 .Xr mlk_alloc_set 3 |
|
64 .Sh AUTHORS |
|
65 .An David Demelier Aq Mt markand@malikania.fr . |