Я заметил, что при компиляции с GCC 4.6 sizeof(Foo)
равен 0 и sizeof(Bar)
равно 1. По какой-то причине добавление пустого массива в пустую структуру делало его размер 0. Я думал, что размеры обеих структур должны быть одна и та же. Что здесь происходит?
struct Foo
{
char x[];
};
struct Bar {};