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?
Why in C++, Empty structure has size 1 byte and In C, 0 byte?
|
Ambitious contributor
|
|
| 17Mar2009,14:32 | #1 |
|
TechCake
|
|
| 17Mar2009,15:46 | #2 |
|
When structure is introduced in C, that time there is no concept of Object. So C standard commette(C99) decided to keep zero size of empty structure.
In C++, Size of empty structure/class will be one byte bcoz. struct Test { public: void Disp( void ); }; int main() { Test tObj; tObj.Disp(); return 0; } To call function atleast empty structure should have some size i.e. one byte. But there is no concept of member function in structure in C. |
