В C++, если вы хотите динамически выделять массив, вы можете сделать что-то вроде этого:
int *p;
p = new int[i]; // i is some number
Однако, чтобы удалить массив, вы делаете...
delete[] p;
Почему не удалить p[]
? Разве это не было бы более симметрично с тем, как он был первоначально создан? В чем причина (если таковая имеется)Почему язык был разработан таким образом?