3 ms·
char* is a allowed to alias to other pointer types.
by professoretc 5y ago
char* is a allowed to alias to other pointer types.
- jeffreygoesto 5y agoHm. Afsik, you are always allowed to convert _to_ a char, but _from_ is not ok in general. See i.e. [0] [0] https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8 https://gist.github.com/shafik/848ae25ee209f698763cffee272a5...
- jart 5y agoWhy is it not ok to convert from a char? Some of the information in the gist is wrong. Type punning with unions for example is legal. ANSI X3.159-1988 is quite clear on that point in its aliasing rules. I've seen a lot of comments people post online saying you must use memcpy to read the bits in a float or that c++ forbids union punning but where is that written. Since if that were true every math library would break.