C++ int to byte array
You don't need a whole function for this; a simple cast will suffice:
int x;static_cast<char*>(static_cast<void*>(&x));
Any object in C++ can be reinterpreted as an array of bytes. If you want to actually make a copy of the bytes into a separate array, you can use std::copy
:
int x;char bytes[sizeof x];std::copy(static_cast<const char*>(static_cast<const void*>(&x)), static_cast<const char*>(static_cast<const void*>(&x)) + sizeof x, bytes);
Neither of these methods takes byte ordering into account, but since you can reinterpret the int
as an array of bytes, it is trivial to perform any necessary modifications yourself.