No, perché lo standard dice che un char * può essere alias di qualunque roba, ma non viceversa.Originariamente inviato da Who am I
Perché questo è consentito? Forse perché il tipo char ha dimensione minore di int?
La questione comunque è dibattuta.
In ogni caso, sarebbe sempre più saggio usare l'array "di base" del tipo giusto ed eventualmente poi accedervi via char * quando necessario, sia per la strict aliasing rule, sia per evitare problemi di alignment.
Da sempre (con leggere differenze relative a peculiarità delle varie versioni dei linguaggi).E a partire da che standard è valida questa regola in C/C++?