Thread overview
sizeof struct no less than 1?
Mar 22, 2014
Mike
Mar 22, 2014
Mike
Mar 22, 2014
Philpax
March 22, 2014
Hello,

Consider an 'empty' struct as follows:

struct Test {}

When printing it's size, it's always 1.
void main()
{
    writeln(Test.sizeof);
}

Output:
1

Why is it not 0?  What about struct Test is consuming 1 byte of memory?

Thanks,
Mike
March 22, 2014
On Saturday, 22 March 2014 at 02:27:02 UTC, Mike wrote:
> Hello,
>
> Consider an 'empty' struct as follows:
>
> struct Test {}
>
> When printing it's size, it's always 1.
> void main()
> {
>     writeln(Test.sizeof);
> }
>
> Output:
> 1
>
> Why is it not 0?  What about struct Test is consuming 1 byte of memory?
>
> Thanks,
> Mike

Looks like this answers my question:
http://forum.dlang.org/post/l03oqc$mpq$1@digitalmars.com
March 22, 2014
C++ exhibits the same behaviour for what is most likely the same reason: so that empty structs can be allocated without two distinct objects having the same memory address ( http://stackoverflow.com/questions/2362097/why-is-the-size-of-an-empty-class-in-c-not-zero )