1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

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

Discussion in 'C++' started by imrantechi, Mar 17, 2009.

  1. imrantechi

    imrantechi New Member

    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?
     
  2. asadullah.ansari

    asadullah.ansari TechCake

    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.
     

Share This Page