what is the size of this class
class size
{
public:
char data1;
double d;
int data2;
char data3;
double data4;
short data5;
};
please explain the padding for these double variables.
Answer Posted / siva
Hi guys why dont you test properly before posting answers???
the answer is 40. how it is padding is as shown bellow
char data1 1+7 bytes
double d 8 bytes
int data2 4 bytes
char data3 1+7 bytes
double data4 8 bytes
short data5 4 bytes
so 40 bits
padding intermes of char type only, not for int, double and
short.
also, padding depends one next member type.
also observe char member are not in sequence.if they are in
sequence all will use same size as first one.
example:
if above structure is as shown bellow
struct size{
char data1 //1+7 bytes
char data6 //uses above 8 bytes
char data7 //uses above 8 bytes
char data8 //uses above 8 bytes
double d //8 bytes
int data2 //4 bytes
char data3 //1+7 bytes
double data4 //8 bytes
short data5 //4 bytes
}
still its size is 40 byts.
here you guys can observe before char data8 double d is
declared thatsway char data8 is padding to 1+7 = 8 byts
if it is int d then char data8 is padding to 1+3 =4 byts
| Is This Answer Correct ? | 2 Yes | 1 No |
Post New Answer View All Answers
Define copy constructor.
What is the difference between #define debug 0 and #undef debug?
How do you print a string on the printer?
Which operations are permitted on pointers?
Are there interfaces in c++?
How should runtime errors be handled in c++?
What is pointer to array in c++?
What is static in c++?
Which operator cannot be overloaded c++?
What new()is different from malloc()?
What is the difference between the parameter to a template and the parameter to a function?
Who discovered c++?
What is the difference between *p++ and (*p)++ ?
What is the c++ programming language used for?
Explain bubble sorting.