From: Moore, Robert > Sent: 26 July 2019 20:36 ... > This is because pointer arithmetic > on a pointer not pointing to an array is an undefined behavior (C11 6.5.6, constraint 8). ... The standards committee as smoking dope again :-) If that is enforced as a compiler warning/error a lot of code 'breaks'. Anything that does: struct foo *foo = ...; struct bar *bar = (void *)(foo + 1); suddenly becomes 'invalid'. David - Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK Registration No: 1397386 (Wales)