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
Please explain the reference variable in c++?
How do you clear a map in c++?
Why do we need pointers?
How should runtime errors be handled in c++?
What header file is needed for exit(); a) stdlib.h b) conio.h c) dos.h
How to declare a function pointer?
Explain polymorphism?
What are the vectors in c++?
What are the effects after calling the delete this operator ?
What is this pointer in c++?
What is a local reference?
What do you mean by static variables?
What is lvalue?
How do you save a c++ program?
Function can be overloaded based on the parameter which is a value or a reference. Explain if the statement is true.