Вы можете использовать указатели
int*a = new int [n];
Вы должны удалить, прежде чем выходить из области действия a
:
delete[] a;
Но лучше использовать вектор:
vector<int> a(n);
Вы также можете использовать llvm smallvector, который оптимизирован для небольших массивов без выделения кучи, если размер был небольшим
llvm::SmallVector<int, 5> smallVector;
for(int i = 0; i < 5; i++) {
smallVector.push_back(i); } // No heap allocations have been performed up to this point.
smallVector.push_back(6); // heap allocation now
Но имейте в виду, что компилятор сам решит, где разместить. Smallvector