@ puneet : tell me the case if u take the address to be starting from 4 not 0..
On Sat, Aug 6, 2011 at 6:55 PM, SANDEEP CHUGH <sandeep.aa...@gmail.com>wrote: > @ 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.