ptr is called the flexible element of the array; it is an array without size and can only appear at the end of a struct .
So basically this:
return flag_block->ptr;
equivalently
return &flag_block->ptr[0];
So, it returns the address of the first byte after the remaining members in the struct .
unwind
source share