in c_src/hyper_carray.c [79:92]
static void carray_alloc(unsigned int precision, carray_ptr * arr)
{
unsigned int nitems = 0x01 << precision;
size_t header_size = HYPER_CARRAY_SIZE;
size_t res_size = header_size + nitems;
void *res = enif_alloc_resource(carray_resource, res_size);
*arr = res;
memset(*arr, 0, header_size);
(*arr)->precision = precision;
(*arr)->size = nitems;
(*arr)->items = (uint8_t *) res + header_size;
}