#include #include #include using namespace std; void PrintAry(const string ary[], size_t size); void Expand(string * & ary, size_t size, size_t capacity); void Add(string * ary, size_t & size, size_t capacity, string word); int main() { string * ary{nullptr}; size_t size{0}; size_t capacity{2}; Expand(ary, size, capacity); Add(ary, size, capacity, "hello"); Add(ary, size, capacity, "world"); Add(ary, size, capacity, "today"); PrintAry(ary, size); cout << endl << endl; cout << "Increasing capacity" << endl; capacity = 10; Expand(ary, size, capacity); Add(ary, size, capacity, "new"); Add(ary, size, capacity, "entry"); PrintAry(ary, size); delete [] ary; return 0; } void PrintAry(const string ary[], size_t size ){ size_t i; for(i = 0; i < size; ++i) { cout << ary[i] << endl; } } void Expand(string *& ary, size_t size, size_t capacity){ string * tmp = new string[capacity]; size_t i; for(i = 0; i < size; ++i) { tmp[i] = ary[i]; } if (ary != nullptr) { delete [] ary; } ary = tmp; } void Add(string * ary, size_t & size, size_t capacity, string word){ if(size < capacity) { ary[size] = word; ++size; } else { cerr << "Warning, " << word << " not added, capacity exceeded " << endl; } }