Почему массив нулевой длины допускается только в случае выделения кучи?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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