Я замечаю, что не разрешено создавать не 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