get_region


Description:

[ Version ( since = "2.70" ) ]
public void* get_region (size_t element_size, size_t offset, size_t n_elements)

Gets a pointer to a region in this.

The region starts at offset many bytes from the start of the data and contains n_elements many elements of element_size size.

n_elements may be zero, but element_size must always be non-zero. Ideally, element_size is a static constant (eg: `sizeof` a struct).

This function does careful bounds checking (including checking for arithmetic overflows) and returns a non-`NULL` pointer if the specified region lies entirely within the this. If the region is in some way out of range, or if an overflow has occurred, then `NULL` is returned.

Note: it is possible to have a valid zero-size region. In this case, the returned pointer will be equal to the base pointer of the data of this, plus offset. This will be non-`NULL` except for the case where this itself was a zero-sized region. Since it is unlikely that you will be using this function to check for a zero-sized region in a zero-sized this, `NULL` effectively always means ‘error’.

Parameters:

this

a [struct@GLib.Bytes]

element_size

a non-zero element size

offset

an offset to the start of the region within the this

n_elements

the number of elements in the region

Returns:

the requested region, or `NULL` in case of an error