public void* alloc (size_t block_size)
Allocates a block of memory from the slice allocator.
The block address handed out can be expected to be aligned to at least `1 * sizeof (void*)`, though in general slices are `2 * sizeof (void*)` bytes aligned; if a `malloc()` fallback implementation is used instead, the alignment may be reduced in a libc dependent fashion.
Note that the underlying slice allocation mechanism can be changed with the `G_SLICE=always-malloc` environment variable.
the number of bytes to allocate
a pointer to the allocated memory block, which will be null if and only if