Best practices: dt_alloc_align + memset -> dt_calloc_align
Best practices: malloc(c * sizeof(y)) -> reallocarray(NULL, c, sizeof(y))