I'm a new C++ programmer (although I've done BV et al for years) so I may be missing something obvious here, but what is wrong with this?

I have two date/time structures which I'm populating, but when I populate the second one it sets the same values in the first.

This is what I've got so far

tm *FirstDate = gmtime(&now);
tm *SecondDate = gmtime(&now);

cout <<"Enter your first date in the format dd/mm/yyyy" << endl <<">";
getline (cin,tempstring);

FirstDate->tm_mday = atoi(tempstring.substr(0,2).c_str());
FirstDate->tm_mon = atoi(tempstring.substr(3,2).c_str());
FirstDate->tm_year = atoi(tempstring.substr(6,4).c_str());

// this is correct...
cout<<" your first entered " <<FirstDate->tm_mday << "/" <<FirstDate->tm_mon <<"/" <<FirstDate->tm_year <<endl;
cout <<"Now enter your second date in the format dd/mm/yyyy" << endl <<">";
getline (cin,tempstring2);

SecondDate->tm_mday = atoi(tempstring2.substr(0,2).c_str());
SecondDate->tm_mon = atoi(tempstring2.substr(3,2).c_str());
SecondDate->tm_year = atoi(tempstring2.substr(6,4).c_str());

// at this point they're both the same as the last entry..
cout<<" your first entered " <<FirstDate->tm_mday << "/" <<FirstDate->tm_mon <<"/" <<FirstDate->tm_year <<endl;
cout<<" your second entered " <<SecondDate->tm_mday << "/" <<SecondDate->tm_mon <<"/" <<SecondDate->tm_year <<endl;

What have I missed or misunderstood?