if we have two pointers, one of type
char *
and another of typestruct something *
pointing to the same location, how is it possible that the first aliases the second but the second doesn’t alias the first?
It does, but that’s not the point.
The point is that if you have one or more struct something
s then you may use a char*
to read their constituent bytes, but if you have one or more char
s then you may not use a struct something*
to read them.