Order is important ... but in the main case here which is

 1) struct list
    {
       int data;
       list *next;
   }
and
2) struct list
    {
       list *next;
       int data;
   }
order is not affecting its size...!!

On 8/6/11, Puneet Gautam <puneet.nsi...@gmail.com> wrote:
> See guys.. the order is important but the size of whole structure
> needs to be a multiple of its largest sized variable...
> eg:
>
> struct p
> {
>         double data;
>         char a;
>         char b;
>         char c;
>         char d;
>         }t;
>
>
> struct q
> {        char c;
>         char d;
>         double data;
>         char a;
>         char b;
>         }t1;
>
> sizeof(t)=16
> sizeof(t1)=24
>
> This can be explained:Lets say address starts at 0
>
> In q structure, c and d take one byte each so data starts at 3 but it
> cant start at 3 (not its size multiple)...
> so double data starts at 8, leaving all 3-7 positions padded to char c and
> d
>
> double ends at 16 so char a and b occupy 17 and 18 addresses.
>
> But if next structure variable starts, it wud have to start at 19
> which is not 8's multiple..
>
> So , char a and b are padded till address 23 and hence next structure
> variable can start at 24..(8 * 3)
>
> Hence t1's size =24, neither 19 nor 12...
>
> Similarly, we can account for structure p's variable t..t=16
> bytes(char a,b,c,d occupy 4bytes, get padded upto 7 and double then
> starts at 8 upto 15, next variable starts at 16..)
>
> Am i clear...???
>
>
>
> On 8/6/11, Nitish Garg <nitishgarg1...@gmail.com> wrote:
>> I think that the order is important. Because when we consider an array of
>> structures the order becomes extremely important just as shown in the
>> above
>> example.
>>
>> On Sat, Aug 6, 2011 at 6:18 PM, Prashant Gupta
>> <prashantatn...@gmail.com>wrote:
>>
>>> Interesting :
>>> #include<iostream>
>>> using namespace std;
>>> int main()
>>> {
>>>     struct p{
>>>         int i;
>>>         char j;
>>>         char k;
>>>     };
>>>     struct q{
>>>         char j;
>>>         int i;
>>>         char k;
>>>     };
>>>     printf("p=%u q=%u",sizeof(p),sizeof(q));
>>>     return 0;
>>> }
>>> o/p : p=8 q=12
>>>
>>> On Sat, Aug 6, 2011 at 2:55 PM, Tushar Bindal
>>> <tushicom...@gmail.com>wrote:
>>>
>>>> that means the order is immaterial.
>>>> the sizeof the struct always remains same irrespective of the order and
>>>> just depends on the type of variables???
>>>> why char with double does not get size in multiples of 8??
>>>>
>>>>
>>>> On Sat, Aug 6, 2011 at 12:54 PM, Puneet Gautam
>>>> <puneet.nsi...@gmail.com>wrote:
>>>>
>>>>> Sorry guys, int is 4 bytes on 64 bit and 2 bytes on 32 bit system..
>>>>>
>>>>> But padding rule remains same for both structures as mentioned
>>>>> above...
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 8/6/11, Puneet Gautam <puneet.nsi...@gmail.com> wrote:
>>>>> > There is no difference between the two...
>>>>> >
>>>>> > On 32 bit system, both structures need every address location where
>>>>> > int and pointer are stored to be a multiple of 4(highest size is
>>>>> > 4)..
>>>>> >
>>>>> > On 64 bit,
>>>>> > even if pointer is 4bytes(say, in 64 bit system), and p1, p2 be
>>>>> > structure variables, then p2 should start at address which is
>>>>> > multiple
>>>>> > of 8 as int data is 8bytes. So, if p1 starts at 0, it should end at
>>>>> > 16
>>>>> > not 12 so that p2 starts at 8's multiple.
>>>>> >
>>>>> > This is done by padding pointer by 4bytes in both I and II struct.
>>>>> > declarations.
>>>>> >
>>>>> >
>>>>> > Hope i made it clear...!
>>>>> >
>>>>> > Thanks.
>>>>> >
>>>>> >
>>>>> >
>>>>> >
>>>>> > On 8/6/11, Tushar Bindal <tushicom...@gmail.com> wrote:
>>>>> >>
>>>>> http://www.serc.iisc.ernet.in/ComputingFacilities/systems/cluster/xlf/html/xlfug/ug35.htm
>>>>> >> this says int is always 4 bytes and pointer is 8 bytes on 64 bit
>>>>> >> compiler.
>>>>> >>
>>>>> >> so how does padding affect these structures because of the
>>>>> >> difference
>>>>> in
>>>>> >> size of int and pointer?
>>>>> >>
>>>>> >>
>>>>> >> I tried this program
>>>>> >> https://ideone.com/CRU6x#view_edit_box
>>>>> >> char always gets 4 bytes whenever it has int or double in the same
>>>>> struct
>>>>> >> irrrespctive of the order of the declaration of variables.
>>>>> >> I thought char should get size 8 when there is a double in the ame
>>>>> struct
>>>>> >> whereas it gets size 4 only.
>>>>> >> what is the problem here?
>>>>> >>
>>>>> >> On Sat, Aug 6, 2011 at 4:40 AM, Shashank Jain
>>>>> >> <shashan...@gmail.com>
>>>>> >> wrote:
>>>>> >>
>>>>> >>> i dont understand the diff btw dem, could u plz elaborate?
>>>>> >>>
>>>>> >>> Shashank Jain
>>>>> >>> IIIrd year
>>>>> >>> Computer Engineering
>>>>> >>> Delhi College of Engineering
>>>>> >>>
>>>>> >>>
>>>>> >>>
>>>>> >>> On Sat, Aug 6, 2011 at 12:32 AM, Kamakshii Aggarwal
>>>>> >>> <kamakshi...@gmail.com
>>>>> >>> > wrote:
>>>>> >>>
>>>>> >>>> in case of 64 bit,
>>>>> >>>> size of second structure will also be 16 not 8
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> On Fri, Aug 5, 2011 at 11:40 PM, UTKARSH SRIVASTAV <
>>>>> >>>> usrivastav...@gmail.com> wrote:
>>>>> >>>>
>>>>> >>>>> I think voth are just same..................
>>>>> >>>>>
>>>>> >>>>>
>>>>> >>>>> On Fri, Aug 5, 2011 at 10:57 AM, priya v <pria....@gmail.com>
>>>>> wrote:
>>>>> >>>>>
>>>>> >>>>>> in case of 64 bit machine y doesn't padding happen in the 2nd
>>>>> >>>>>> structure?
>>>>> >>>>>>
>>>>> >>>>>>
>>>>> >>>>>> On Fri, Aug 5, 2011 at 11:21 PM, hary rathor
>>>>> >>>>>> <harry.rat...@gmail.com>wrote:
>>>>> >>>>>>
>>>>> >>>>>>> no ,if u r using 32 bit machine . that will use 4 byte pointer
>>>>> size
>>>>> >>>>>>> ,
>>>>> >>>>>>> but   in 64 machine that enforce to be size of 8 . where
>>>>> >>>>>>> padding
>>>>> >>>>>>> will
>>>>> >>>>>>> take int your given first structure
>>>>> >>>>>>>
>>>>> >>>>>>> so for 32 bit- size will 8 8 for both structure
>>>>> >>>>>>> for 64 bit - size will 16 and 12 respectively cause of 4 bit
>>>>> padding
>>>>> >>>>>>> in
>>>>> >>>>>>> one structure
>>>>> >>>>>>>
>>>>> >>>>>>> hence 2nd structure is good for use
>>>>> >>>>>>>
>>>>> >>>>>>> --
>>>>> >>>>>>> You received this message because you are subscribed to the
>>>>> Google
>>>>> >>>>>>> Groups "Algorithm Geeks" group.
>>>>> >>>>>>> To post to this group, send email to
>>>>> >>>>>>> algogeeks@googlegroups.com.
>>>>> >>>>>>> To unsubscribe from this group, send email to
>>>>> >>>>>>> algogeeks+unsubscr...@googlegroups.com.
>>>>> >>>>>>> For more options, visit this group at
>>>>> >>>>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>> >>>>>>>
>>>>> >>>>>>
>>>>> >>>>>>  --
>>>>> >>>>>> You received this message because you are subscribed to the
>>>>> >>>>>> Google
>>>>> >>>>>> Groups "Algorithm Geeks" group.
>>>>> >>>>>> To post to this group, send email to
>>>>> >>>>>> algogeeks@googlegroups.com.
>>>>> >>>>>> To unsubscribe from this group, send email to
>>>>> >>>>>> algogeeks+unsubscr...@googlegroups.com.
>>>>> >>>>>> For more options, visit this group at
>>>>> >>>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>> >>>>>>
>>>>> >>>>>
>>>>> >>>>>
>>>>> >>>>>
>>>>> >>>>> --
>>>>> >>>>> *UTKARSH SRIVASTAV
>>>>> >>>>> CSE-3
>>>>> >>>>> B-Tech 2nd Year
>>>>> >>>>> @MNNIT ALLAHABAD*
>>>>> >>>>>
>>>>> >>>>>
>>>>> >>>>>  --
>>>>> >>>>> You received this message because you are subscribed to the
>>>>> >>>>> Google
>>>>> >>>>> Groups
>>>>> >>>>> "Algorithm Geeks" group.
>>>>> >>>>> To post to this group, send email to algogeeks@googlegroups.com.
>>>>> >>>>> To unsubscribe from this group, send email to
>>>>> >>>>> algogeeks+unsubscr...@googlegroups.com.
>>>>> >>>>> For more options, visit this group at
>>>>> >>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>> >>>>>
>>>>> >>>>
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> --
>>>>> >>>> Regards,
>>>>> >>>> Kamakshi
>>>>> >>>> kamakshi...@gmail.com
>>>>> >>>>
>>>>> >>>> --
>>>>> >>>> You received this message because you are subscribed to the
>>>>> >>>> Google
>>>>> >>>> Groups
>>>>> >>>> "Algorithm Geeks" group.
>>>>> >>>> To post to this group, send email to algogeeks@googlegroups.com.
>>>>> >>>> To unsubscribe from this group, send email to
>>>>> >>>> algogeeks+unsubscr...@googlegroups.com.
>>>>> >>>> For more options, visit this group at
>>>>> >>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>> >>>>
>>>>> >>>
>>>>> >>>  --
>>>>> >>> You received this message because you are subscribed to the Google
>>>>> >>> Groups
>>>>> >>> "Algorithm Geeks" group.
>>>>> >>> To post to this group, send email to algogeeks@googlegroups.com.
>>>>> >>> To unsubscribe from this group, send email to
>>>>> >>> algogeeks+unsubscr...@googlegroups.com.
>>>>> >>> For more options, visit this group at
>>>>> >>> http://groups.google.com/group/algogeeks?hl=en.
>>>>> >>>
>>>>> >>
>>>>> >>
>>>>> >>
>>>>> >> --
>>>>> >> Tushar Bindal
>>>>> >> Computer Engineering
>>>>> >> Delhi College of Engineering
>>>>> >> Mob: +919818442705
>>>>> >> E-Mail : tushicom...@gmail.com
>>>>> >> Website: www.jugadengg.com
>>>>> >>
>>>>> >> --
>>>>> >> You received this message because you are subscribed to the Google
>>>>> Groups
>>>>> >> "Algorithm Geeks" group.
>>>>> >> To post to this group, send email to algogeeks@googlegroups.com.
>>>>> >> To unsubscribe from this group, send email to
>>>>> >> algogeeks+unsubscr...@googlegroups.com.
>>>>> >> For more options, visit this group at
>>>>> >> http://groups.google.com/group/algogeeks?hl=en.
>>>>> >>
>>>>> >>
>>>>> >
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups
>>>>> "Algorithm Geeks" group.
>>>>> To post to this group, send email to algogeeks@googlegroups.com.
>>>>> To unsubscribe from this group, send email to
>>>>> algogeeks+unsubscr...@googlegroups.com.
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Tushar Bindal
>>>> Computer Engineering
>>>> Delhi College of Engineering
>>>> Mob: +919818442705
>>>> E-Mail : tushicom...@gmail.com
>>>> Website: www.jugadengg.com
>>>>
>>>>  --
>>>> You received this message because you are subscribed to the Google
>>>> Groups
>>>> "Algorithm Geeks" group.
>>>> To post to this group, send email to algogeeks@googlegroups.com.
>>>> To unsubscribe from this group, send email to
>>>> algogeeks+unsubscr...@googlegroups.com.
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>
>>>
>>>
>>>
>>> --
>>> Prashant Gupta
>>> B.Tech Final Year
>>> Computer Science and Engineering
>>> NIT Trichy
>>> Phone : +91 9894462744
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups
>>> "Algorithm Geeks" group.
>>> To post to this group, send email to algogeeks@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> algogeeks+unsubscr...@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/algogeeks?hl=en.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to algogeeks@googlegroups.com.
>> To unsubscribe from this group, send email to
>> algogeeks+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to