Первый пункт: практически нет оснований использовать форму массива new или delete для начала - вместо этого используйте std :: vector (или какой-либо другой контейнер).
Во-вторых: назад в темные века C++ вам нужно было указать размер массива, который вы удаляли, поэтому, если вы использовали x = new T[N]
, то соответствующее совпадение было delete [N] x
. Требование явно указать размер было удалено long назад, но некоторые компиляторы (особенно те, которые заботятся о обратной совместимости с древним кодом) все еще позволяют это.
Если вам действительно не нужно оставаться совместимым с древним компилятором (которому 20 лет или около того), вы не должны его использовать. Опять же, если вам не нужно оставаться совместимым с таким старым компилятором, он не поддерживает стандартные контейнеры, вы не должны использовать форму массива new или delete в первую очередь. Просто остановись!
+1. полезная информация –
означает, что вы можете удалить массив [2N]; и что бы скомпилировать –
Спасибо, это то, что я искал. – raven