On Sat, Jun 19, 2021 at 11:10:14AM -0400, Dmitry Goncharov wrote:
> On Sat, Jun 19, 2021 at 10:31 AM Dmitrii Pasechnik
> <dima.pasech...@cs.ox.ac.uk> wrote:
> > It's undefined behaviour in C to point to such a location, isn't it?
> > Is this hack really needed?
> 
> There is no hack. It is pointer arithmetic in c. p[-1] is the same as *(p-1).

Compiler does not guarantee you that doing something with p[-1]
is not going to end in a segfault. It's hack, as it just happens to work, but 
YMMV.

E.g. clang 10, or Apple's clang 12, will print a warning:

warning: array index -1 is before the beginning of the array [-Warray-bounds]
printf("%d", p[-1]);
             ^ ~~


Reply via email to