myint is a char array that you use for all strings. That is OK but if you want to store previous entries, you must create copies of those entries. The easiest would be to use a vector of string objects, std::vector<std::string> myvector;.
You are reusing the myint[] char array to receive input repeatedly. This is ONE string. It cannot hold TWO strings. When you push_back() a pointer to a char, you are just pushing a memory address. You are NOT producing copies of the actual string. Therefore, all items in the vector of type char* point to the same string always, which is myint.
If you use a vector of std::string objects, C++ automatically constructs those objects in the call to push_back(), and this effectively copies the string into a new memory address. This means you are saving the data and now you can use the original char array for whatever.
int main ()
{
vector<char *> myvector;
//char myint[22];
int n=2;
//look at hera
char (*myint)[22];
myint = new char[n][22];
//end
cout << "Please enter some integers (enter 0 to end):\n";
do
{
n--;
//mind the range
cin >> myint[n];
myvector.push_back (myint[n]);
} while (n > 0);