Всякий раз, когда вы сталкиваетесь со структурой данных, которая может потребоваться изменить размер, вы должны думать: std::vector
.
В данном конкретном случае std::vector<std::string>>
- это то, что вы хотите / нуждаетесь.
Чтобы передать вектор в устаревший API, который ожидает массив и размер в стиле C, передайте его std::vector::data()
и std::vector::size()
.Вектор гарантированно использует непрерывную память, точно так же, как массив в стиле C, так что эти два хорошо взаимодействуют.