Why in C++, Empty structure has size 1 byte and In C, 0 byte?

In C++ , size of empty structure is 1 byte where in C, size of structure is zero?

As per my knowledge, If you will take array of n objects of any structure then where there distinguish so they have taken size atleast one byte, But this rule should apply to same in C also. Can you give me some proper answer?