A struct is a block of memory that stores several data objects, where those objects don’t overlap. A union is a block of memory that stores several data objects , but has only storage for the largest of these, and thus can only store one of the data objects at any one time.