title: QByteArray:: append() leads to memory reallocation
body: <p>I have noticed that in some cases after executing the following code</p>
  
  <pre><code>void appendToArray(QByteArray &amp;array, const char *source, int size) {
      void *p1 = array.data();
      array.append(dest, size);
      void *p2 = array.data();
  }
  </code></pre>
  
  <p>p1 and p2 become different. But I always thought that append() method doesn't affect inner QByteArray memory "at the beginning" - it just appends some bytes to the end of object; Am I wrong?</p>