<h2 >The <code>upc_memset</code> function   </h2>

<h4>Synopsis</h4>
<p>

<pre> 
    #include &lt;upc.h&gt;
    void upc_memset(shared void *dst, 
                    int c, 
                    size_t n);
                    
</pre>

<p>
<h4>Description</h4>

<p>
The <code>upc_memset</code>    function  copies the value of c, converted to an unsigned
char, to a shared object with affinity to any single thread. The number of
bytes set is n.
<p>The <code>upc_memset</code>  function treats the <code>dst</code> pointer as if had type:
<pre>
    shared [] char[n]
</pre>
    
The effect is equivalent to setting the entire contents of a shared array object
with this type (the <code>dst</code> array) to the value c.

<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>
