devxlogo

An Object Size May Never Be Zero

An Object Size May Never Be Zero

An empty class doesn’t have any data members or member functions. You’d think that the size of an object of such a class would be zero. However, the Standard states that a complete object shall never have a zero value. For example:

 class Empty {};Empty  e; // e occupies at least 1 byte of memory

There is a good reason for this restriction. If an object were allowed to occupy 0 bytes of memory, its address could overlap with the address of a different object. The most obvious case would be an array of empty objects. To avoid this, an object occupies at least one byte of memory, which guarantees that it also has a distinct memory address.

See also  5 Ways to Improve Customer Experience
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist