Bagaimana cara menemukan ukuran sebuah struct?

struct a
{
    char *c;
    char b;
};

Apa itu sizeof(a)?

Hal ini akan bervariasi, tergantung pada arsitektur Anda dan bagaimana memperlakukan tipe data dasar. Hal ini juga akan tergantung pada apakah sistem memerlukan penyelarasan alami.

Komentar (0)

Saya berasumsi bahwa yang Anda maksud adalah struct dan bukan strict, tetapi pada sistem 32-bit, itu akan menjadi 5 atau 8 byte, tergantung pada apakah kompiler melakukan padding struct.

Komentar (0)

Saya menduga yang Anda maksud adalah 'struct', bukan 'strict', dan 'char' bukan 'Char'.

Ukurannya akan tergantung pada implementasi. Pada kebanyakan sistem 32-bit, mungkin akan menjadi 5 -- 4 byte untuk pointer, satu untuk char. Saya tidak percaya penyelarasan akan ikut bermain di sini. Jika Anda menukar ' c ' dan ' b ', bagaimanapun, ukurannya dapat bertambah menjadi 8 byte.

Ok, saya mencobanya (g++ 4.2.3, dengan opsi -g) dan saya mendapatkan 8.

Komentar (1)