@ puneet :  ryt !!  gud explanation.

On Sat, Aug 6, 2011 at 6:53 PM, Puneet Gautam <puneet.nsi...@gmail.com>wrote:

> 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.
>
>

-- 
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