Gli array "normali" C++ sono a dimensione fissata, per ottenere quello che vuoi devi allocare un array dinamicamente, riallocandolo quando lo spazio non basta. La libreria standard fortunatamente fornisce una struttura dati preconfezionata (std::vector<Tipo>) che gestisce autonomamente questo ed altri problemi.