<h2 >The <code>upc_memcpy</code> function   </h2>

<h4>Synopsis</h4>
<p>

<pre> 
    #include &lt;upc.h&gt;
    void upc_memcpy(shared void * restrict dst, 
                    shared const void * restrict src, 
                    size_t n);
                    
</pre>

<p>
<h4>Description</h4>

<p>
The <code>upc_memcpy</code>    function  copies n characters from a shared object having
affinity with one thread to a shared object having affinity with the same or
another thread.
<p>The <code>upc_memcpy</code> function treats the <code>dst</code> and <code>src</code> pointers as if 
they had type:
<pre>
    shared [] char[n]
</pre>
The effect is equivalent to copying the entire contents from one shared array
object with this type (the <code>src</code> array) to another shared array object with
this type (the <code>dst</code> array).

<p>&nbsp
<p>&nbsp
<p><a href="terms.html">Terms, definitions, and symbols</a><br>
<p><a href="index.html">Back to index of all UPC functions</a>
