#include <iostream>
#include <cstring>
using namespace std;
class Person {
char name[10];
int age;
};
int main(void) {
const size_t size = sizeof(Person);
cout << size << endl;
system("PAUSE");
return 0;
}
Output is:
16
and that's ok, because 10 bytes (char[10]) is rounded to 16 by Visual Studio 2015 compiler. If I comment out the int age;
line, then the output is 10
(is it 2+8 from rounding values?) Why not still 16 if compiler rounds values to 2
,4
,8
and 16
?
Why compiler is not consistent and doesn't print 14
for both char name[10];
and int age;
. And 10
for only char name[10];
(when I comment out age
)