Почему массив нулевой длины допускается только в случае выделения кучи?C++

Программы на C++. Форум разработчиков
Гость
Почему массив нулевой длины допускается только в случае выделения кучи?

Сообщение Гость »

Я замечаю, что не разрешено создавать не HEAP, выделенные массивами нулевой длины. < /p>

// error: cannot allocate an array of constant length zero
char a[0];
< /code>

Я также замечаю, что ему разрешено создавать кучу выделенных массивов по нулевой длине. < /p>

// this is okay though
char *pa = new char[0];
< /code>

Я думаю, они оба гарантированы стандартом (у меня нет копии стандарта под рукой). Если так, почему они так разные? Почему бы просто не разрешить массив нулевой длины в стеке (или наоборот)?

Подробнее здесь: https://stackoverflow.com/questions/686 ... -allocated

Вернуться в «C++»