They remain empty. You cannot use them. The purpose for which they are left will be defeated then.
On Sat, Jul 30, 2011 at 1:03 PM, Puneet Gautam <puneet.nsi...@gmail.com>wrote: > @everyone: What happens to those padded byte addresses.. do they > remain empty or what..? > Can we utilize those padded bytes in any way ..? > > > On 7/30/11, tech rascal <techrascal...@gmail.com> wrote: > > can anyone explain in detail .....how structure padding is > advantageous??? > > > > On Fri, Jul 29, 2011 at 10:28 PM, Rohit Srivastava > > <access2ro...@gmail.com>wrote: > > > >> padding based on the bit interleaving(low order) which is basically > >> hardware dependent. > >> > >> > >> On Fri, Jul 29, 2011 at 10:10 PM, Puneet Gautam > >> <puneet.nsi...@gmail.com>wrote: > >> > >>> Thanks guys...so much...!! > >>> > >>> On 7/29/11, nullpointer <nullpointer...@gmail.com> wrote: > >>> > #include<stdio.h> > >>> > #include<conio.h> > >>> > struc MyStructA { > >>> > > >>> > char a; > >>> > char b; > >>> > int c; > >>> > }; > >>> > > >>> > struct MyStructB { > >>> > char a; > >>> > int c; > >>> > char b; > >>> > }; > >>> > > >>> > int main(void) { > >>> > > >>> > struct MyStructA A; > >>> > struct MyStructB B; > >>> > > >>> > int sizeA = sizeof(struct MyStructA); > >>> > int sizeB = sizeof(struct MyStructB); > >>> > return 0; > >>> > > >>> > } > >>> > > >>> > OUTPUT IS > >>> > A = 8 > >>> > B = 12 > >>> > Structure padding is done to try and make sure that variables start > in > >>> > memory at addresses that are a multiple of their size. > >>> > This is more efficient at hardware level (needs less cpu ticks to > read > >>> > or write variables) and in some platforms this is mandatory, though > >>> > not on i386. There are CPU's that can only handle double precision > >>> > floats if they are aligned on addresses that are a multiople of 8. > >>> > > >>> > > >>> > In this struct: > >>> > struct MyStructA { > >>> > > >>> > char a; > >>> > char b; > >>> > int c; > >>> > }; > >>> > the beginning of the struct is to be assumed at 0 (I'l explain later) > >>> > a is 1 byte so it needs no padding in front of it. > >>> > the same goes for b. > >>> > but c is 4 bytes. it should be placed at an address boundary that is > a > >>> > multiple of 4, so the compiler adds 2 dummy bytes in front of it. > >>> > These 2 bytes change the size from 6 to 8. > >>> > Now in this struct: > >>> > struct MyStructB { > >>> > char a; > >>> > int c; > >>> > char b; > >>> > }; > >>> > > >>> > a starts on 0, so no need for padding. > >>> > c needs 3 bytes in front of it, and b needs no padding. > >>> > this would bring the struct size to 9. HOWEVER, suppose that you > place > >>> > 2 of those structs in an array, the address rules for the second > >>> > struct in the array are the same as for the first struct. > >>> > If that second struct would start at byte 10, this would not be true > >>> > so the compiler also inserts some padding at the end of the structure > >>> > so that the next struct after it starts at a multiple of the size of > >>> > its largest member. > >>> > > >>> > > >>> > > >>> > > >>> > On Jul 29, 3:36 pm, Arun Vishwanathan <aaron.nar...@gmail.com> > wrote: > >>> >> @puneet : no , in this case since 4 bytes will be used for int a and > >>> int c > >>> >> and then 1 byte for char b with 3 padded bytes next..it wud be the > >>> >> same > >>> >> here > >>> >> > >>> >> On Fri, Jul 29, 2011 at 12:11 PM, Puneet Gautam > >>> >> <puneet.nsi...@gmail.com>wrote: > >>> >> > >>> >> > >>> >> > >>> >> > @nikhil: If i declare "Char b" after "int c".., would there be any > >>> >> > difference...? > >>> >> > >>> >> > On 7/28/11, Nikhil Gupta <nikhilgupta2...@gmail.com> wrote: > >>> >> > > Here's another example. > >>> >> > >>> >> > > struct example > >>> >> > > { > >>> >> > > int a; > >>> >> > > char b; > >>> >> > > int c; > >>> >> > > } > >>> >> > >>> >> > > Now if a variable of type example is declared then > >>> >> > > (considering base address as 2000) > >>> >> > > a gets : 2000 to 2003 > >>> >> > > b gets : 2004 > >>> >> > > c gets : 2005 to 2008 ? NO > >>> >> > >>> >> > > It gets 2008 to 2011. The bytes from 2005 to 2007 (3 bytes) are > >>> padded > >>> >> > > in > >>> >> > > this case. > >>> >> > >>> >> > > On Thu, Jul 28, 2011 at 12:18 AM, Aman Goyal < > >>> aman.goya...@gmail.com> > >>> >> > wrote: > >>> >> > >>> >> > >> yes this will be the case. > >>> >> > >>> >> > >> On Wed, Jul 27, 2011 at 11:35 PM, Puneet Gautam > >>> >> > >> <puneet.nsi...@gmail.com>wrote: > >>> >> > >>> >> > >>> @nikhil:So what u mean is that if i have: > >>> >> > >>> >> > >>> struct{ > >>> >> > >>> int a; > >>> >> > >>> char b[5]; > >>> >> > >>> }; > >>> >> > >>> >> > >>> the size of this struct's node will be 12 not 9.., to make it > a > >>> >> > multiple > >>> >> > >>> of 4?? > >>> >> > >>> >> > >>> On 7/26/11, Nikhil Gupta <nikhilgupta2...@gmail.com> wrote: > >>> >> > >>> > Padding is not a topic of self referential structure. > >>> >> > >>> >> > >>> > Padding means that extra spaces of memory are used by the > >>> compiler > >>> >> > >>> > to > >>> >> > >>> > allocate memory. This is done to have the memory address as > a > >>> >> > multiple > >>> >> > >>> of > >>> >> > >>> > the size of the variable. This speeds up the processing of > >>> these > >>> >> > >>> variables > >>> >> > >>> > by the compiler. > >>> >> > >>> >> > >>> > On Tue, Jul 26, 2011 at 8:09 PM, Puneet Gautam > >>> >> > >>> > <puneet.nsi...@gmail.com>wrote: > >>> >> > >>> >> > >>> >> what is meant by padding in self_referenced structure? > >>> >> > >>> >> Is it always necessary? > >>> >> > >>> >> > >>> >> -- > >>> >> > >>> >> 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. > >>> >> > >>> >> > >>> > -- > >>> >> > >>> > Nikhil Gupta > >>> >> > >>> > Senior Co-ordinator, Publicity > >>> >> > >>> > CSI, NSIT Students' Branch > >>> >> > >>> > NSIT, New Delhi, India > >>> >> > >>> >> > >>> > -- > >>> >> > >>> > 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. > >>> >> > >>> >> > > -- > >>> >> > > Nikhil Gupta > >>> >> > > Senior Co-ordinator, Publicity > >>> >> > > CSI, NSIT Students' Branch > >>> >> > > NSIT, New Delhi, India > >>> >> > >>> >> > > -- > >>> >> > > 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. > >>> >> > >>> >> -- > >>> >> Arun Vish > >>> >> Graduate Student > >>> >> Department of Computer Science > >>> >> University of Southern California > >>> > > >>> > -- > >>> > 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. > > > > > > -- > 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. > > -- Nikhil Gupta Senior Co-ordinator, Publicity CSI, NSIT Students' Branch NSIT, New Delhi, India -- 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.