26#define Memindex struct _Memindex *
38#define mem_data(m,i) ((m)->b[i])
45#define mem_data(m,i,j) ((m)->b[i][j])
53#define mem_data(m,i,j,k) ((m)->b[i][j][k])
72 for (
int i = 0;
i < len;
i++)
75 for (
int j = 0;
j < len;
j++)
93 m->b =
calloc (len,
sizeof(
char *));
102 m->b =
malloc (len*
sizeof(
char *));
106 m->b[
i] =
calloc (len,
sizeof(
char *));
113 m->b =
malloc (len*
sizeof(
char *));
117 m->b[
i] =
calloc (len,
sizeof(
char *));
119 m->b[
i][
j] =
calloc (len,
sizeof(
char *));
define m((k)==0 &&(l)==0 &&(m)==0) macro2 foreach_point(double _x=0.
define sysmalloc malloc define syscalloc calloc define sysrealloc realloc define sysfree free define systrdup strdup define line calloc(n, s) @ define prealloc(p
*cs[i, 0, 0] a *[i -1, 0, 0] j
macro
We also redefine the "per field" (inner) traversal.
#define mem_allocated(m, i, j)
The mem_data() macros return the data stored at a specific (multidimensional) index.
struct _Memindex * mem_new(int len)
The mem_new() function returns a new (empty) Memindex.
macro foreach_mem(struct _Memindex *index, int len, int _i)
The foreach_mem() macro traverses every _i allocated elements of array _m taking into account a perio...
void mem_free(struct _Memindex *m, int i, int j, int len, void *b)
The mem_free() function frees a given index.
#define mem_data(m, i, j)
void mem_destroy(struct _Memindex *m, int len)
The mem_destroy() function frees all the memory allocated by a given Memindex.
void mem_assign(struct _Memindex *m, int i, int len, void *b)
The mem_assign() function assigns a (pointer) value to a given index.