Błędny rozmiar klasy z tablicą char

0

Dlaczego gdy mam jakąś klasą np.

class Klasa
{
    public:
        char c[10];
        int i[10];
        Klasa(){}
        ~Klasa(){}
        
};

to rozmiar jej przy użyciu sizeof(Klasa) jest równy 52 a nie 50 (10 + 40) jak powinno(???) być ? Czy to jest błędny rozmiar ?
Tablica char c{10] nieumieszczona w klasie czy w strukturze ma rozmiar 10...
A z kolei ta sama klasa gdy zamiast tablicy 10-cio elementowej dam 100 elementowa to ma poprawny rozmiar ( 140 ). Czegoś tu nie rozumiem...

0

Kompilator dokłada padding/align, żeby się szybciej odwoływać do pól struktury, wszystko jest ok.

(patrz #pragma pack - Q)

1 użytkowników online, w tym zalogowanych: 0, gości: 1