Я читал, что нужен оператор delete[]
, потому что среда выполнения не сохраняет информацию о том, является ли выделенный блок массивом объектов, которым требуются вызовы деструктора или нет, но фактически хранит информацию о том, где в памяти является выделенным блоком, а также, конечно, размером блока.
Для того, чтобы помнить, нужно ли деструкторов вызывать на удаление или нет, потребуется еще один бит метаданных, поэтому почему бы просто не сделать это?
Я уверен, что есть хорошее объяснение, я не спрашиваю об этом, я просто хочу это знать.