член нулевой длины в структуре. Даже в C ++ есть случаи, когда это полезно при работе с аппаратно-ориентированными низкоуровневыми программами. И я согласен с Дороном по поводу сериализации.

вы можете объявить гибкий член массива структуры следующим образом:

struct blah
{
    int foo[];
};

Однако, когда кто-то здесь на работе пытался скомпилировать некоторый код, используя clang в C ++, этот синтаксис не работал. (Он работал с MSVC.) Мы должны были преобразовать его в:

struct blah
{
    int foo[0];
};

Просматривая стандарт C ++, я вообще не нашел ссылок на гибкие массивы элементов; Я всегда думал[0] было недопустимым объявлением, но, по-видимому, для гибкого массива членов оно действительно. Действительно ли гибкие массивы-члены действительны в C ++? Если это так, является ли правильное объявление[] или же[0]?

Ответы на вопрос(6)

Ваш ответ на вопрос