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.

Reply via email to