Why is that? Well, think of memory as consisting of segments of certain size, where, if the amount of data you fill the segment with is bigger than the current remainder of the segment, the data will get written onto the next segment. The remaining space (a.k.a, padding) remains unused, and every instance of your struct might have some portion of unused padding when initialised. There is a great o
![Reduce Struct Size by Laying out Attributes Accordingly :: Random Bits of Wisdom](https://cdn-ak-scissors.b.st-hatena.com/image/square/24bdf4be80ac54b3b8eee75f2419567d66498a21/height=288;version=1;width=512/https%3A%2F%2Fpreslav.me%2Fimages%2Favatar.jpg)