You can access any type through
unsigned char *
, it's excluded from strict aliasing. Compiler adding padding between struct members could cause issues, but they don't do that in practice for members of the same type.