title: Strange mktime behaviour - Change if return value is assigned to a variable
body: <p>I'm experimenting a strange <em>mktime()</em> function behaviour. When I assign the value returned by the function, the value of the input parameter is one and when I doesn't the value is different. </p>
  
  <p>I already know that <em>mktime()</em> adjust the values of the <em>struct tm</em> input parameter but what's happening it's different, lets see the code with the corresponding output:</p>
  
  <p><strong>First code</strong></p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;time.h&gt;
  
  using namespace std;
  
  int main(int argc, char** argv) {
      struct tm cT;
      strptime("31/07/2014 16:54:00", "%d/%m/%Y%n%T", &amp;cT);
      mktime(&amp;cT);
  
      cout &lt;&lt; "Current Time: "  &lt;&lt; cT.tm_mday &lt;&lt; "/" &lt;&lt; cT.tm_mon + 1 &lt;&lt; "/" &lt;&lt; cT.tm_year + 1900 &lt;&lt; " " &lt;&lt; cT.tm_hour &lt;&lt; ":" &lt;&lt; cT.tm_min &lt;&lt; ":" &lt;&lt; cT.tm_sec &lt;&lt; endl;
  
  }
  </code></pre>
  
  <p><strong>Output:</strong></p>
  
  <blockquote>
    <p>Current Time: 31/7/2014 16:54:0</p>
  </blockquote>
  
  <p><strong>Second code</strong></p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;time.h&gt;
  
  using namespace std;
  
  int main(int argc, char** argv) {
      struct tm cT;
      strptime("31/07/2014 16:54:00", "%d/%m/%Y%n%T", &amp;cT);
      time_t t = mktime(&amp;cT);
  
      cout &lt;&lt; "Current Time: "  &lt;&lt; cT.tm_mday &lt;&lt; "/" &lt;&lt; cT.tm_mon + 1 &lt;&lt; "/" &lt;&lt; cT.tm_year + 1900 &lt;&lt; " " &lt;&lt; cT.tm_hour &lt;&lt; ":" &lt;&lt; cT.tm_min &lt;&lt; ":" &lt;&lt; cT.tm_sec &lt;&lt; endl;
  
  }
  </code></pre>
  
  <p><strong>Output:</strong></p>
  
  <blockquote>
    <p>Current Time: 31/7/2014 15:54:0</p>
  </blockquote>
  
  <p>Any help is welcome. :)</p>