Well if you're wanted to add one more item to the top of the list at a time, a linked list would be my recommendation. However, if you're unsure on what size you'd like to make your new array, you could try something like this in a function:
cpp
// Step 1: Create really big temp array
const int MaxLen = 100;
char tempString[ MaxLen ];
// Step 2: Get user input
cout << "Enter your name:";
cin.get( tempString, MaxLen );
// Step 3: Length of string and make a smaller one
// Allocate array of exact size
int len = (int)strlen( tempString ) + 1;
char* pDynamic = new char[ len ];
// Step 4: Copy the string
strcpy_s( pDynamic, len, tempString );
//NOTE: delete the string LATER
return pDynamic;
But if you're dealing with vectors, chances are you'll want to use a linked list, and that's something you can google, or I believe we have a tutorial on them

they can be quite tricky to the un-initiated
Hope this helps