Is the underlying bit representation for an std::array and a T u[N] the same?
In other words, is it safe to copy
std::array provides method data() which can be used to copy to/from c-style array of proper size:
const size_t size = 123;
int carray[size];
std::array array;
memcpy( carray, array.data(), sizeof(int) * size );
memcpy( array.data(), carray, sizeof(int) * size );
As stated on documentation
This container is an aggregate type with the same semantics as a struct holding a C-style array T[N] as its only non-static data member.
so it seems that memory footprint would be compatible with c-style array, though it is not clear why you want to use "hacks" with reinterpret_cast when there is a proper way which does not have any overhead.