When you create an instance of a struct or class, the member variables are all created next to each other in memory. However, the compiler will sometimes pad the member variables with gaps. You can insist that it does not do any padding, thus ensuring that the member variables are all next to each other. http://en.wikipedia.org/wiki/Data_structure_alignment#Data_structure_padding
If multiple threads made fourInts, each fourInt would be somewhere in memory. They would not be intermixed.