#include <xtend/mem.h>
-lxtend
void *xt_malloc(size_t nelem, size_t size)
nelem: Number of objects to allocate
size: Size of a single object
xt_malloc() is a simple wrapper around malloc(3) that requires two arguments
representing the number of objects to allocate and the size of an element.
This prevents the very common mistake with malloc(3) of forgetting to multiply
by the size of an element. Specifying the size using sizeof(*variable) has the
advantage of being type-independent. I.e. if you change the type of the
variable, this code need not be updated.
Address of the newly allocated array, or NULL if allocation failed
#define MAX_WIDGETS 1000
widget_t *widgets;
widgets = xt_malloc(MAX_WIDGETS, sizeof(*widgets));