its hard to explain because things arent actually set in stone in reality. But in the c++ memory model if you want to load an 4 byte integer it must be on a 4 byte boundary. loading it from another alignment would be illegal. But you could also have 4 1 byte integers in the same memory and load each of them at their respective 1 byte alignment
yeah i probably should learn more about systems