I know that GCC implements a C extension (which is more or less required
by POSIX) which allows you to define a buffer
char buf[1024];
and then allocate objects from that (assuming that the buffer is
sufficiently large and the pointers to subobjects are suitably aligned).
In short, it is possible to change the dynamic type of an object even
if it was defined with a type.
The object is first written under the new type, and only accessed under
the new type. It is also possible that the buffer is reused and
different objects with different types at the same offsets are carved
out from it.
Is this a property of the char type, or would other types work as well,
for example, double or long double?
Thanks,
Florian
- GCC aliasing extension for C Florian Weimer
-