title: Will memcpy correctly copy an array allocated with mkl_malloc?
body: <p>I'm allocating an array with <code>mkl_malloc</code> with a <code>64</code> alignment, and I need to make a copy of it. But I don't understand how aligning works. Does <code>mkl_malloc</code> just add padding at the end so that the total size of the array is a multiple of 64 bytes? Or will there also be padding between array elements?</p>
  
  <p>Will code like the example below copy all of <code>a</code> into <code>b</code>, or only part of it?</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;mkl.h&gt;
  
  int main() {
      double *a = mkl_malloc(10 * sizeof(double), 64);
  
      // is this enough memory to include a?
      double *b = malloc(10 * sizeof(double));
  
      // will this copy all of a?
      memcpy(b, a, 10 * sizeof(double));
  
      mkl_free(a);
      free(b);
      return 0;
  }
  </code></pre>