Я нахожу эту вещь немного сложной и рекурсивной относительно того, как оператор sizeof вычисляет размер одного узла в связанном списке. Я ниже структура, как один узел в списке, например:Размер узла связанного списка
struct ll_core
{
char c_ll;
struct ll_core * next;
};
printf("size of struct ll_core = %d\n\n",sizeof(struct ll_core));
это дает мне ответ 8. Теперь, как он решает размер 8, так как добавление размеров отдельного элемента структуры его Agains сталкивается с тем же struct ll_core. Так что это своего рода цикл или рекурсия при вычислении размера. Пожалуйста, извините меня и сообщите мне, если я пропущу какую-либо основную вещь в голове, думая так.
Итак, переходя к этому ответу и всем остальным, я понимаю, что 32-битная машина (моя тоже 32-разрядная) читает/записывает данные в 4 байтовых фрагментах, что делает эту структуру похожей: (c_ll 1byte + 3byte padding) - 4bytes struct ll_core * next - 4bytes Следовательно добавление до 8 байт. !! –
да, это правильно – Sanish