В чем заключается разница между new double[n] и new (double[n])?
Читал документацию об операторе new на cppreference и увидел следующий пример:
int n = 42;
auto p1 = new double[n][5]; // OK
auto p2 = new (double[n][5]); // error: syntax (1) cannot be used for dynamic arrays
Хотелось бы узнать:
- Чем отличается выделение памяти для p1 и p2.
- Почему нельзя использовать non-const n во втором случае.