title: new and malloc allocates extra 16 bytes
body: <p>I'm writing on c++ in VS2010 Windows 7. I try to read file of size 64 bytes. Here's the code:</p>
  
  <pre><code>    BYTE* MyReadFile(FILE *f)
  {
      size_t result;
      BYTE *buffer;
      long lSize;
      if (f == NULL) 
      {
          fputs ("File error", stderr); 
          exit (1);
      }
  
      fseek (f, 0, SEEK_END);
      lSize = ftell (f);
      rewind (f);
  
      //buffer = (BYTE*) malloc (sizeof(char)*lSize);
      buffer = new BYTE[lSize];
      if (buffer == NULL) 
      {
          fputs ("Memory error", stderr); 
          exit (2);
      }
  
      result = fread (buffer, 1, lSize, f);
      if (result != lSize) 
      {
          fputs ("Reading error",stderr); 
          exit (3);
      }
  
      fclose (f);
      return buffer;
  }
  </code></pre>
  
  <p>When I get file size it is 64, but when I allocate memory for it with new BYTE[lSize] I get 80 bytes of space and thus strange sequence <strong>ээээ««««««««оюою</strong> is added to the end of buffer. Can you please tell me how to handle this?</p>