Можно ли использовать new [] вместо new? К примеру:
int main()
{
int q;
q = 1;
int *mass = new int [q];
...
delete [] mass;
return 0;
}
Спрашиваю потому, что хочется сделать код более универсальным, чтобы каждый раз не делать проверки на значения переменной q, где она может быть больше единицы или равной ей. Будет ли такой код корректно функционировать? И не будет ли такой стиль считаться дурным тоном?
Никто не мешает писать new T[n], где n == 1.
Однако само по себе использование new T[n] и new T считается дурным тоном, т.к. есть std::vector<T> и std::make_unique<T>.
В частности С++ Core Guidelines не рекомендуют использование "naked new":
ES.60: Avoid new and delete outside resource management functions
Reason
Direct resource management in application code is error-prone and tedious.
Такой способ создания одиночных объектов непригоден в случаях, когда необходимо полиморфное удаление полиморфных объектов. Полиморфное удаление возможно только через new/delete, но не через new[]/delete[].
Также такой способ создания одиночных объектов приведет к повышенному расходу памяти в случаях, когда объект имеет нетривиальный деструктор.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники